wcf - 以编程方式添加 IOperationBehavior 的正确位置在哪里

标签 wcf

在 iis 上运行时如何以编程方式添加 IOperationBehavior ?
不在自定义 wcf 主机上。

谢谢

阿里·塔卡维奇

最佳答案

您可以将其附加为属性:

public class CustomInspectorAttribute : Attribute, IOperationBehavior, IParameterInspector
{
    #region IOperationBehavior Members

    public void AddBindingParameters(OperationDescription operationDescription, BindingParameterCollection bindingParameters)
    {
    }

    public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)
    {
        // Attribute could be used on client side
        clientOperation.ParameterInspectors.Add(this);
    }

    public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation)
    {
        // Attribute could be used on server side
        dispatchOperation.ParameterInspectors.Add(this);
    }

    public void Validate(OperationDescription operationDescription)
    {
    }

    #endregion




    #region IParameterInspector Members

    public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
    {
         // Do something with returned values from operation
    }

    public object BeforeCall(string operationName, object[] inputs)
    {
        // Do something with incoming parameters before invoking actual operation
        return null;
    }

    #endregion
}

并将属性附加到操作
[ServiceContract]
public interface ICustomServiceContract
{
    [CustomInspector]
    [OperationContract]
    void MyOperation();
}

关于wcf - 以编程方式添加 IOperationBehavior 的正确位置在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/906398/

相关文章:

asp.net - WCF服务支持文件jsdebug加载失败

c# - 无法将程序集安装到缓存?

.net - WCF maxConnections 属性

asp.net - 无法加载文件或程序集 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821'

c# - 查找 WCF 服务调用方的 Active Directory 域用户名

c# - 通过 Remoting/WCF 在远程计算机上部署和执行代码

c# - UWP 应用中的 WCF 发现

c# - WCF SSL 客户端证书错误

wcf - 使用 DataContractSerializer 序列化 DataSet 时保留 DataRowState

.net - 复制到其他计算机时无法在 WcfTestClient 中添加服务