1

我有如下服务合同

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

问题是是否调用

 new ChannelFactory<IService>(myBinding, myUri)

是否会在调用之前隐式添加 MyCustomBehavior,仅通过我将 IService 传递给 ChannelFactory 还是需要更深入地挖掘并将 MyCustomBehavior 显式设置为 MyOperation 操作?

4

1 回答 1

1

操作行为

实现 IOperationBehavior 接口的操作行为用于扩展每个操作的客户端和服务运行时。

有两种机制可以将操作行为添加到操作中。第一种机制是创建一个自定义属性,用于对操作建模的方法。将操作添加到 ServiceHost 或 ChannelFactory 时,WCF 会将任何 IOperationBehavior 属性添加到为该操作创建的 OperationDescription 上的行为集合中。

第二种机制是直接将行为添加到构造的 OperationDescription 上的行为集合中。

我建议你先阅读这篇文章。

使用行为配置和扩展运行时

于 2012-05-20T00:53:11.927 回答