OperationDescription クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
操作を構成するメッセージの説明を提供する、コントラクトの操作の説明を表します。
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- 継承
-
OperationDescription
例
次の例では、 クラスの OperationDescription プロパティによって返されるコレクションから返される をOperationsContractDescription使用します。 このコードではエンドポイントのコレクションが反復処理され、各エンドポイントの名前とエンドポイント内の各操作の名前が出力されます。
private void PrintDescription(ServiceHost sh)
{
// Declare variables.
int i, j, k, l, c;
ServiceDescription servDesc = sh.Description;
OperationDescription opDesc;
ContractDescription contractDesc;
MessageDescription methDesc;
MessageBodyDescription mBodyDesc;
MessagePartDescription partDesc;
IServiceBehavior servBeh;
ServiceEndpoint servEP;
// Print the behaviors of the service.
Console.WriteLine("Behaviors:");
for (c = 0; c < servDesc.Behaviors.Count; c++)
{
servBeh = servDesc.Behaviors[c];
Console.WriteLine("\t{0}", servBeh.ToString());
}
// Print the endpoint descriptions of the service.
Console.WriteLine("Endpoints");
for (i = 0; i < servDesc.Endpoints.Count; i++)
{
// Print the endpoint names.
servEP = servDesc.Endpoints[i];
Console.WriteLine("\tName: {0}", servEP.Name);
contractDesc = servEP.Contract;
Console.WriteLine("\tOperations:");
for (j = 0; j < contractDesc.Operations.Count; j++)
{
// Print the operation names.
opDesc = servEP.Contract.Operations[j];
Console.WriteLine("\t\t{0}", opDesc.Name);
Console.WriteLine("\t\tActions:");
for (k = 0; k < opDesc.Messages.Count; k++)
{
// Print the message action.
methDesc = opDesc.Messages[k];
Console.WriteLine("\t\t\tAction:{0}", methDesc.Action);
// Check for the existence of a body, then the body description.
mBodyDesc = methDesc.Body;
if (mBodyDesc.Parts.Count > 0)
{
for (l = 0; l < methDesc.Body.Parts.Count; l++)
{
partDesc = methDesc.Body.Parts[l];
Console.WriteLine("\t\t\t\t{0}",partDesc.Name);
}
}
}
}
}
}
Private Sub PrintDescription(ByVal sh As ServiceHost)
' Declare variables.
Dim i, j, k, l, c As Integer
Dim servDesc As ServiceDescription = sh.Description
Dim opDesc As OperationDescription
Dim contractDesc As ContractDescription
Dim methDesc As MessageDescription
Dim mBodyDesc As MessageBodyDescription
Dim partDesc As MessagePartDescription
Dim servBeh As IServiceBehavior
Dim servEP As ServiceEndpoint
' Print the behaviors of the service.
Console.WriteLine("Behaviors:")
For c = 0 To servDesc.Behaviors.Count-1
servBeh = servDesc.Behaviors(c)
Console.WriteLine(vbTab + "{0}", servBeh)
Next c
' Print the endpoint descriptions of the service.
Console.WriteLine("Endpoints")
For i = 0 To servDesc.Endpoints.Count-1
' Print the endpoint names.
servEP = servDesc.Endpoints(i)
Console.WriteLine(vbTab + "Name: {0}", servEP.Name)
contractDesc = servEP.Contract
Console.WriteLine(vbTab + "Operations:")
For j = 0 To contractDesc.Operations.Count-1
' Print operation names.
opDesc = servEP.Contract.Operations(j)
Console.WriteLine(vbTab + vbTab + "{0}", opDesc.Name)
Console.WriteLine(vbTab + vbTab + "Actions:")
For k = 0 To opDesc.Messages.Count-1
' Print the message action.
methDesc = opDesc.Messages(k)
Console.WriteLine(vbTab + vbTab + vbTab + _
"Action:{0}", methDesc.Action)
' Check for the existence of a body, then the body description.
mBodyDesc = methDesc.Body
If mBodyDesc.Parts.Count > 0 Then
For l = 0 To methDesc.Body.Parts.Count-1
partDesc = methDesc.Body.Parts(l)
Console.WriteLine(vbTab + vbTab + _
vbTab + vbTab + "{0}", partDesc.Name)
Next l
End If
Next k
Next j
Next i
End Sub
注釈
Windows Communication Foundation (WCF) コントラクトは、エンドポイントが外部と通信する内容を指定する操作のコレクションです。 それぞれの操作は、メッセージ交換です。 たとえば、要求メッセージとそれに関連する応答メッセージは要求/応答メッセージ交換を行います。
ContractDescription オブジェクトは、WCF のコントラクトとその操作を記述するために使用されます。 ContractDescription では、各コントラクト操作に、対応する OperationDescription があります。ここでは、操作が一方向か要求/応答かなど、操作面を説明します。 また、それぞれの OperationDescription では、MessageDescription オブジェクトのコレクションを使用して、操作を構成するメッセージを記述します。 ContractDescription には、プログラミング モデルを使用してコントラクトを定義するインターフェイスへの参照が含まれます。 このインターフェイスは ServiceContractAttribute でマークされ、エンドポイントの操作に対応するメソッドは OperationContractAttribute でマークされます。
のプロパティ OperationDescription の多くは、 の WCF プログラミング モデルで対応するプロパティを OperationContractAttribute持っています (例: IsTerminating)。
コンストラクター
OperationDescription(String, ContractDescription) |
指定した名前とコントラクトの説明を使用して、OperationDescription クラスの新しいインスタンスを初期化します。 |
プロパティ
BeginMethod |
操作の開始メソッドを取得または設定します。 |
Behaviors |
操作に関連付けられている操作の動作を取得または設定します。 |
DeclaringContract |
操作が属するコントラクトを取得または設定します。 |
EndMethod |
操作の終了メソッドを取得または設定します。 |
Faults |
操作の説明に関連付けられているエラーの説明を取得します。 |
HasProtectionLevel |
操作に保護レベルが設定されているかどうかを示す値を取得します。 |
IsInitiating |
メソッドが (セッションが存在する場合に) サーバー上でセッションを開始できる操作を実装するかどうかを示す値を取得または設定します。 |
IsOneWay |
操作が応答メッセージを返すかどうかを示す値を取得または設定します。 |
IsTerminating |
応答メッセージが存在する場合に、そのメッセージの送信後にセッションを終了するようにサービス操作がサーバーに指示するかどうかを示す値を取得または設定します。 |
KnownTypes |
操作の説明に関連付けられている既知の型を取得します。 |
Messages |
操作を構成するメッセージの説明を取得または設定します。 |
Name |
操作の説明の名前を取得または設定します。 |
OperationBehaviors |
操作の動作のセットを取得します。 |
ProtectionLevel |
操作の保護レベルを取得または設定します。 |
SyncMethod |
操作の説明のサービス同期メソッドを取得または設定します。 |
TaskMethod |
タスク操作で使用するメソッドを取得または設定します。 |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ShouldSerializeProtectionLevel() |
ProtectionLevel プロパティが既定値から変更されたためにシリアル化する必要があるかどうかを示す値を返します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
.NET