0

正如标题所说,我需要列出方法名称和请求和响应类型(仅限本地名称而不是完全限定名称)。我正在评估各种替代方案。这是我的发现-

  1. 参数检查器:可以访问操作名称,但不能访问每个操作的请求和响应类型。

    public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
    {
        foreach (ClientOperation operation in clientRuntime.Operations)
        {                
            operation.ParameterInspectors.Add(new ParamInfo());
        }
    }
    
  2. 消息检查器:不能使用,因为它们是消息的 xml 表示。

  3. 消息格式化程序:不幸的是,我们的 WCF 服务使用了XmlSerializer:-( 不会触发这种可扩展性。

前进的方向是什么?

4

1 回答 1

1

您要查找的 MethodInfo 隐藏在 ServiceEndpoint 中。例如假设定义了一个同步操作:

endpoint.Contract.Operations[0].SyncMethod.ReturnType

或者

endpoint.Contract.Operations[0].SyncMethod.GetParameters()

使这有点令人困惑的是,ServiceEndpoint 正在处理合同参数的 .NET 实现,而不是 SOAP 消息。换句话说,如果您实现服务以使用异步通信或任务,则OperationDescription上的属性不同。

于 2013-09-30T18:29:30.990 回答