.NET Framework クラス ライブラリ
IOperationBehavior..::.ApplyClientBehavior メソッド

更新 : 2007 年 11 月

操作全体にわたってクライアントの変更または拡張を実装します。

名前空間 :  System.ServiceModel.Description
アセンブリ :  System.ServiceModel (System.ServiceModel.dll 内)
構文

Visual Basic (宣言)
Sub ApplyClientBehavior ( _
    operationDescription As OperationDescription, _
    clientOperation As ClientOperation _
)
Visual Basic (使用法)
Dim instance As IOperationBehavior
Dim operationDescription As OperationDescription
Dim clientOperation As ClientOperation

instance.ApplyClientBehavior(operationDescription, _
    clientOperation)
C#
void ApplyClientBehavior(
    OperationDescription operationDescription,
    ClientOperation clientOperation
)
Visual C++
void ApplyClientBehavior(
    OperationDescription^ operationDescription, 
    ClientOperation^ clientOperation
)
J#
void ApplyClientBehavior(
    OperationDescription operationDescription,
    ClientOperation clientOperation
)
JScript
function ApplyClientBehavior(
    operationDescription : OperationDescription, 
    clientOperation : ClientOperation
)

パラメータ

operationDescription
型 : System.ServiceModel.Description..::.OperationDescription
検査されている操作。検査でのみ使用します。操作の説明が変更される場合、結果は未定義です。
clientOperation
型 : System.ServiceModel.Dispatcher..::.ClientOperation
operationDescription で説明されている操作のカスタマイズ プロパティを公開するランタイム オブジェクト。
解説

特定の操作で使用されるすべてのメッセージについて、クライアント ランタイムを表示または変更したり、クライアント ランタイムにカスタム拡張機能を追加したりするには、ApplyClientBehavior メソッドを実装します。クライアントのランタイム オブジェクトで実行できるカスタマイズの詳細については、ClientRuntime および ClientOperation を参照してください。

動作をサービス アプリケーションでのみ使用する場合は、ApplyClientBehavior メソッドで NotImplementedException をスローさせることをお勧めします。


インスペクタが操作で呼び出されたときにコンソールに書き込みを行う System.ServiceModel.Dispatcher..::.IParameterInspector の実装を次のコード例に示します。このカスタマイズは、System.ServiceModel.Dispatcher..::.DispatchOperation または System.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; }
アクセス許可

  • 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。
プラットフォーム

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
バージョン情報

.NET Framework

サポート対象 : 3.5、3.0
参照

参照

タグ :


Page view tracker