OperationDescription OperationDescription OperationDescription OperationDescription Class

定義

操作を構成するメッセージの説明を提供する、コントラクトの操作の説明を表します。Represents the description of a contract operation that provides a description of the messages that make up the operation.

public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
継承
OperationDescriptionOperationDescriptionOperationDescriptionOperationDescription

次の例では、ContractDescription クラスの Operations プロパティによって返されたコレクションから返された @no__t 0 を使用します。The following example uses the OperationDescription returned from the collection returned by the Operations property of the ContractDescription class. このコードではエンドポイントのコレクションが反復処理され、各エンドポイントの名前とエンドポイント内の各操作の名前が出力されます。The code iterates through the collection of endpoints and prints each endpoint name, as well as the name of each operation in the endpoint.

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) コントラクトは、エンドポイントが外部と通信する対象を指定する操作のコレクションです。A Windows Communication Foundation (WCF) contract is a collection of operations that specifies what the endpoint communicates to the outside world. それぞれの操作は、メッセージ交換です。Each operation is a message exchange. たとえば、要求メッセージとそれに関連する応答メッセージは要求/応答メッセージ交換を行います。For example, a request message and an associated reply message forming a request/reply message exchange.

ContractDescription オブジェクトは、WCF のコントラクトとその操作を記述するために使用されます。A ContractDescription object is used to describe contracts and their operations. ContractDescription では、各コントラクト操作に、対応する OperationDescription があります。ここでは、操作が一方向か要求/応答かなど、操作面を説明します。Within a ContractDescription, each contract operation has a corresponding OperationDescription that describes aspects of the operation, such as whether the operation is one-way or request/reply. また、それぞれの OperationDescription では、MessageDescription オブジェクトのコレクションを使用して、操作を構成するメッセージを記述します。Each OperationDescription also describes the messages that make up the operation using a collection of MessageDescription objects. ContractDescription には、プログラミング モデルを使用してコントラクトを定義するインターフェイスへの参照が含まれます。ContractDescription contains a reference to an interface that defines the contract using the programming model. このインターフェイスは ServiceContractAttribute でマークされ、エンドポイントの操作に対応するメソッドは OperationContractAttribute でマークされます。This interface is marked with ServiceContractAttribute, and its methods that correspond to endpoint operations are marked with OperationContractAttribute.

@No__t 0 のプロパティの多くには、OperationContractAttribute の WCF プログラミングモデルの対応するプロパティ (たとえば、IsTerminating) があります。Many of the properties on OperationDescription have corresponding properties in the WCF programming model on OperationContractAttribute, for example, IsTerminating.

コンストラクター

OperationDescription(String, ContractDescription) OperationDescription(String, ContractDescription) OperationDescription(String, ContractDescription) OperationDescription(String, ContractDescription)

指定した名前とコントラクトの説明を使用して、OperationDescription クラスの新しいインスタンスを初期化します。Initializes a new instance of the OperationDescription class with a specified name and contract description.

プロパティ

BeginMethod BeginMethod BeginMethod BeginMethod

操作の開始メソッドを取得または設定します。Gets or sets the begin method of the operation.

Behaviors Behaviors Behaviors Behaviors

操作に関連付けられている操作の動作を取得または設定します。Gets or sets the operation behaviors associated with the operation.

DeclaringContract DeclaringContract DeclaringContract DeclaringContract

操作が属するコントラクトを取得または設定します。Gets or sets the contract to which the operation belongs.

EndMethod EndMethod EndMethod EndMethod

操作の終了メソッドを取得または設定します。Gets or sets the end method of the operation.

Faults Faults Faults Faults

操作の説明に関連付けられているエラーの説明を取得します。Gets the descriptions of the faults associated with the operation description.

HasProtectionLevel HasProtectionLevel HasProtectionLevel HasProtectionLevel

操作に保護レベルが設定されているかどうかを示す値を取得します。Gets a value that indicates whether the operation has had a protection level set.

IsInitiating IsInitiating IsInitiating IsInitiating

メソッドが (セッションが存在する場合に) サーバー上でセッションを開始できる操作を実装するかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether the method implements an operation that can initiate a session on the server (if such a session exists).

IsOneWay IsOneWay IsOneWay IsOneWay

操作が応答メッセージを返すかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether an operation returns a reply message.

IsTerminating IsTerminating IsTerminating IsTerminating

応答メッセージが存在する場合に、そのメッセージの送信後にセッションを終了するようにサービス操作がサーバーに指示するかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether the service operation causes the server to close the session after the reply message, if any, is sent.

KnownTypes KnownTypes KnownTypes KnownTypes

操作の説明に関連付けられている既知の型を取得します。Gets the known types associated with the operation description.

Messages Messages Messages Messages

操作を構成するメッセージの説明を取得または設定します。Gets or sets the descriptions of the messages that make up the operation.

Name Name Name Name

操作の説明の名前を取得または設定します。Gets or sets the name of the operation description.

OperationBehaviors OperationBehaviors OperationBehaviors OperationBehaviors

操作の動作のセットを取得します。Gets the set of behaviors for the operation.

ProtectionLevel ProtectionLevel ProtectionLevel ProtectionLevel

操作の保護レベルを取得または設定します。Gets or sets the protection level for the operation.

SyncMethod SyncMethod SyncMethod SyncMethod

操作の説明のサービス同期メソッドを取得または設定します。Gets or sets the service synchronization method of the operation description.

TaskMethod TaskMethod TaskMethod TaskMethod

タスク操作で使用するメソッドを取得または設定します。Gets or sets the method used for the task operation.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ShouldSerializeProtectionLevel() ShouldSerializeProtectionLevel() ShouldSerializeProtectionLevel() ShouldSerializeProtectionLevel()

ProtectionLevel プロパティが既定値から変更されたためにシリアル化する必要があるかどうかを示す値を返します。Returns a value that indicates whether the ProtectionLevel property has changed from its default value and should be serialized.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象