2017-06-25 6 views
0

EndpointDispatcherオブジェクトをサービスメソッドとどのように一致させることができますか?私は、私のエンドポイントメソッドに属性を追加しましたが、属性を持つメソッドだけにインスペクタを追加したいと思います。EndpointDispatcherからエンドポイントのメソッドを取得する方法

public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) 
{ 
    for (int i = 0; i < serviceHostBase.ChannelDispatchers.Count; i++) 
    { 
     ChannelDispatcher channelDispatcher = serviceHostBase.ChannelDispatchers[i] as ChannelDispatcher; 
     if (channelDispatcher != null) 
     { 
      foreach (EndpointDispatcher endpointDispatcher in channelDispatcher.Endpoints) 
      { 
       var methods = typeof(DataService).GetMethods(); 
       foreach (var method in methods) 
       { 
        Debug.WriteLine(method.Name); 
       } 
       endpointDispatcher.DispatchRuntime.MessageInspectors.Add(new HttpInspector()); 
      } 
     } 
    } 
} 

答えて

0

私が知っている限り、操作レベルのメッセージインスペクタを使用することはできません。それらは常に少なくともエンドポイントレベルです。 しかし、操作で設定した属性に基づいて、メッセージインスペクタ内でフィルタリングを適用することができます。 例を参照してください。Message logging with MessageInspector in Operation level

関連する問題