1

私は次のようなサービス契約を結んでいます

[ServiceContract]
public interface IService
{
     [MyCustomBehavior]
     [OperationContract]
     void MyOperation();
}

問題は、

 new ChannelFactory<IService>(myBinding, myUri)

IServiceをChannelFactoryに渡すだけで、呼び出しの前に暗黙的にMyCustomBehaviorを追加しますか、それともさらに深く掘り下げてMyCustomBehaviorをMyOperation操作に明示的に設定する必要がありますか?

4

1 に答える 1

1

操作動作

IOperationBehaviorインターフェイスを実装する操作動作は、各操作のクライアントとサービスの両方のランタイムを拡張するために使用されます。

操作に操作動作を追加するには、2つのメカニズムがあります。最初のメカニズムは、操作をモデル化するメソッドで使用されるカスタム属性を作成することです。操作がServiceHostまたはChannelFactoryのいずれかに追加されると、WCFはその操作用に作成されたOperationDescriptionの動作コレクションにIOperationBehavior属性を追加します。

2番目のメカニズムは、構築されたOperationDescriptionの動作コレクションに動作を直接追加することです。

最初にこれを読むことをお勧めします。

ビヘイビアーを使用したランタイムの構成と拡張

于 2012-05-20T00:53:11.927 に答える