閱讀英文

共用方式為


IOperationBehavior.ApplyDispatchBehavior 方法

定義

實作作業上服務的修改或延伸。

C#
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.DispatchOperationSystem.ServiceModel.Dispatcher.ClientOperation,所以通常是由作業行為插入。

C#
#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;
}

下列程式碼範例將示範作業行為如何將參數偵測器附加到執行階段。

C#
#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.DispatchRuntimeSystem.ServiceModel.Dispatcher.DispatchOperation

如果行為只預定用於用戶端應用程式,建議使用 ApplyDispatchBehavior 方法擲回 NotImplementedException 例外狀況。

適用於

產品 版本
.NET Core 1.0, Core 1.1, 8 (package-provided), 9 (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 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
UWP 10.0