0

サービスに追加のサービス操作を追加するサービス動作を作成したいと考えています。このようにして、サービス (既存および将来) のいずれかに動作を追加でき、サービスはすべて、この追加のサービス操作を実行できるようになります。(例: ping を実行するか、その他のサービス情報を返します)

目的を達成するためにここで何をすればよいかわかりません。これまでに試みたことは、サービスの説明を変更しようとするサービスの動作を実装することです。エンドポイントを追加してから、新しいコントラクトを指定する必要がありますか?


public class MyOperationBehavior : IServiceBehavior
{
   void IServiceBehavior.ApplyDispatchBehavior(
                    ServiceDescription desc, ServiceHostBase host)
    {
       ServiceEndpointCollection sec = svcDesc.Endpoints;
       ServiceEndpoint se = new ServiceEndpoint()
       {
            se.Address = "DoMyOperation";
            se.Binding = "basicHttpBinding";
            se.Contract = MyCustomContract;           
       }

    }
}

4

2 に答える 2

1

サービスを使用する利点の 1 つは、明確に定義されたかなり静的な一連の操作をコンシューマーに公開できることです。

実行時にサービス操作を動的に追加できることが、消費者にどのように役立つかはわかりません。

消費者ごとにサービス契約を変更する必要がある場合は、サービス構成がおそらく消費者のニーズに合っていないことを示している可能性があることをお勧めします。

申し訳ありませんが、これはあなたの質問に直接答えるものではなく、提案された規模での再作業は現在の開発範囲外である可能性があることを理解してください.

于 2012-06-20T08:21:36.980 に答える
0

各サービス コントラクトにメソッドを追加することなく、メソッドを WCF サービスに動的に追加する方法に関するこの記事で、私が探していたものを見つけました。

しかし、WS-Discovery を使用することは、サービス コントラクトに触れることなくサービスに関する情報を公開するという、私が望むことを達成するためのはるかに優れた方法であると信じています。

于 2012-10-01T03:26:36.853 に答える