0

タイトルが示すように、メソッド名とリクエストとレスポンスのタイプ (完全修飾名ではなくローカル名のみ) をリストアップする必要があります。私はさまざまな代替案を評価していました。これが私の発見です-

  1. パラメーター インスペクター: 操作名にはアクセスできますが、各操作の要求と応答の種類にはアクセスできません。

    public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
    {
        foreach (ClientOperation operation in clientRuntime.Operations)
        {                
            operation.ParameterInspectors.Add(new ParamInfo());
        }
    }
    
  2. Message Inspector: メッセージの xml 表現であるため使用できません。

  3. メッセージ フォーマッター: 残念ながら、私たちの WCF サービスでは、XmlSerializer:-( この拡張性はトリガーされません。

前進する方法は何ですか?

4

1 に答える 1

1

探している MethodInfo は ServiceEndpoint に隠されています。たとえば、同期操作が定義されていると仮定します。

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

また

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

これがややこしいのは、ServiceEndpoint が SOAP メッセージではなく、コントラクト パラメーターの .NET 実装を扱っていることです。つまり、非同期通信を使用するようにサービスを実装したり、OperationDescriptionの別のプロパティを処理したりする場合です。

于 2013-09-30T18:29:30.990 に答える