英語で読む

次の方法で共有


IOperationBehavior.ApplyDispatchBehavior メソッド

定義

操作全体にわたってサービスの変更または拡張を実装します。

public void ApplyDispatchBehavior(System.ServiceModel.Description.OperationDescription operationDescription, System.ServiceModel.Dispatcher.DispatchOperation dispatchOperation);

パラメーター

operationDescription
OperationDescription

検査されている操作。 検査でのみ使用します。 操作の説明が変更される場合、結果は未定義です。

dispatchOperation
DispatchOperation

operationDescription で説明されている操作のカスタマイズ プロパティを公開するランタイム オブジェクト。

インスペクターが操作で呼び出されたときにコンソールに書き込みを行う System.ServiceModel.Dispatcher.IParameterInspector の実装を次のコード例に示します。 このカスタマイズは、System.ServiceModel.Dispatcher.DispatchOperation または System.ServiceModel.Dispatcher.ClientOperation にのみ結び付けることができるので、通常は操作の動作によって挿入されます。

#region IParameterInspector Members
public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
{
  Console.WriteLine(
    "IParameterInspector.AfterCall called for {0} with return value {1}.",
    operationName,
    returnValue.ToString()
  );
}

public object BeforeCall(string operationName, object[] inputs)
{
  Console.WriteLine("IParameterInspector.BeforeCall called for {0}.", operationName);
  return null;
}

操作の動作がパラメーター インスペクターをランタイムに結び付ける方法を次のコード例に示します。

#region IOperationBehavior Members
public void AddBindingParameters(
  OperationDescription operationDescription, BindingParameterCollection bindingParameters
)
{ return; }

public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)
{
  clientOperation.ParameterInspectors.Add(new Inspector());
}

public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation)
{
  dispatchOperation.ParameterInspectors.Add(new Inspector());
}

public void Validate(OperationDescription operationDescription){ return; }

注釈

すべてのメッセージまたは特定の操作について、サービス ランタイムを表示、変更、または拡張するには、ApplyDispatchBehavior メソッドを実装します。 サービス アプリケーションで実行できるカスタマイズの詳細については、System.ServiceModel.Dispatcher.DispatchRuntime および System.ServiceModel.Dispatcher.DispatchOperation を参照してください。

動作をクライアント アプリケーションでのみ使用する場合は、ApplyDispatchBehavior メソッドで NotImplementedException 例外をスローさせることをお勧めします。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
UWP 10.0