次の方法で共有


OperationDescription クラス

定義

操作を構成するメッセージの説明を提供する、コントラクトの操作の説明を表します。

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)

適用対象