IOperationBehavior.ApplyClientBehavior メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
操作全体にわたってクライアントの変更または拡張を実装します。
public:
void ApplyClientBehavior(System::ServiceModel::Description::OperationDescription ^ operationDescription, System::ServiceModel::Dispatcher::ClientOperation ^ clientOperation);
public void ApplyClientBehavior (System.ServiceModel.Description.OperationDescription operationDescription, System.ServiceModel.Dispatcher.ClientOperation clientOperation);
abstract member ApplyClientBehavior : System.ServiceModel.Description.OperationDescription * System.ServiceModel.Dispatcher.ClientOperation -> unit
Public Sub ApplyClientBehavior (operationDescription As OperationDescription, clientOperation As ClientOperation)
パラメーター
- operationDescription
- OperationDescription
検査されている操作。 検査でのみ使用します。 操作の説明が変更される場合、結果は未定義です。
- clientOperation
- ClientOperation
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 "IParameterInspector Members"
Public Sub AfterCall(ByVal operationName As String, ByVal outputs() As Object, ByVal returnValue As Object, _
ByVal correlationState As Object) Implements IParameterInspector.AfterCall
Console.WriteLine("IParameterInspector.AfterCall called for {0} with return value {1}.", _
operationName, returnValue.ToString())
End Sub
Public Function BeforeCall(ByVal operationName As String, ByVal inputs() As Object) As Object Implements _
IParameterInspector.BeforeCall
Console.WriteLine("IParameterInspector.BeforeCall called for {0}.", operationName)
Return Nothing
End Function
操作の動作がパラメーター インスペクターをランタイムに結び付ける方法を次のコード例に示します。
#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; }
#Region "IOperationBehavior Members"
Public Sub AddBindingParameters(ByVal operationDescription As OperationDescription, _
ByVal bindingParameters As BindingParameterCollection) Implements _
IOperationBehavior.AddBindingParameters
Return
End Sub
Public Sub ApplyClientBehavior(ByVal operationDescription As OperationDescription, ByVal _
clientOperation As ClientOperation) Implements IOperationBehavior.ApplyClientBehavior
clientOperation.ParameterInspectors.Add(New Inspector())
End Sub
Public Sub ApplyDispatchBehavior(ByVal operationDescription As OperationDescription, ByVal dispatchOperation As _
DispatchOperation) Implements IOperationBehavior.ApplyDispatchBehavior
dispatchOperation.ParameterInspectors.Add(New Inspector())
End Sub
Public Sub Validate(ByVal operationDescription As OperationDescription) Implements IOperationBehavior.Validate
Return
End Sub
注釈
特定の操作で使用されるすべてのメッセージについて、クライアント ランタイムを表示または変更したり、クライアント ランタイムにカスタム拡張機能を追加したりするには、ApplyClientBehavior メソッドを実装します。 クライアントのランタイム オブジェクトで実行できるカスタマイズの詳細については、ClientRuntime および ClientOperation を参照してください。
動作をサービス アプリケーションでのみ使用する場合は、ApplyClientBehavior メソッドで NotImplementedException をスローさせることをお勧めします。
適用対象
.NET