OperationDescription Klasse

Definition

Stellt die Beschreibung eines Vertragsvorgangs dar, in der Nachrichten beschrieben werden, die den Vorgang ausmachen.

public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
Vererbung
OperationDescription

Beispiele

Im folgenden Beispiel wird das von der OperationDescription Auflistung zurückgegebene verwendet, das von der Operations -Eigenschaft der ContractDescription -Klasse zurückgegeben wird. Mit folgendem Code wird die Auflistung von Endpunkten durchlaufen und jeder Endpunktname sowie der Name jedes Vorgangs im Endpunkt ausgegeben.

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

Hinweise

Ein Windows Communication Foundation-Vertrag (WCF) ist eine Sammlung von Vorgängen, die angibt, was der Endpunkt an die Außenwelt kommuniziert. Jeder Vorgang ist ein Nachrichtenaustausch. Beispielsweise bilden eine Anforderungsnachricht und eine zugeordnete Antwortnachricht einen Anforderung/Antwort-Nachrichtenaustausch.

Ein ContractDescription-Objekt wird verwendet, um Verträge und ihre Vorgänge zu beschreiben. Innerhalb einer ContractDescription verfügt jeder Vertragsvorgang über eine entsprechende OperationDescription, die die Aspekte des Vorgangs beschreibt, wie beispielsweise, ob es sich um einen unidirektionalen Vorgang oder einen Anforderung/Antwort-Vorgang handelt. Jede OperationDescription beschreibt auch die Nachrichten, aus denen der Vorgang besteht, unter Verwendung einer Auflistung von MessageDescription-Objekten. ContractDescription enthält einen Verweis auf eine Schnittstelle, die den Vertrag über das Programmiermodell definiert. Diese Schnittstelle ist mit ServiceContractAttribute gekennzeichnet, und die Methoden, die Endpunktvorgängen entsprechen, sind mit OperationContractAttribute markiert.

Viele der Eigenschaften für verfügen über OperationDescription entsprechende Eigenschaften im WCF-Programmiermodell für OperationContractAttribute, z. B IsTerminating. .

Konstruktoren

OperationDescription(String, ContractDescription)

Initialisiert eine neue Instanz der OperationDescription-Klasse mit einem angegebenen Namen und einer angegebenen Vertragsbeschreibung.

Eigenschaften

BeginMethod

Ruft die Begin-Methode des Vorgangs ab oder legt sie fest.

Behaviors

Ruft die dem Vorgang zugeordneten Vorgangsverhalten ab bzw. legt diese fest.

DeclaringContract

Ruft den Vertrag ab, dem der Vorgang zugeordnet ist, oder legt diesen fest.

EndMethod

Ruft die End-Methode des Vorgangs ab oder legt sie fest.

Faults

Ruft die Beschreibungen der Fehler ab, die der Vorgangsbeschreibung zugeordnet sind.

HasProtectionLevel

Ruft einen Wert ab, der angibt, ob für den Vorgang eine Schutzebene festgelegt ist.

IsInitiating

Ruft einen Wert ab, der angibt, ob die Methode einen Vorgang implementiert, der eine Sitzung auf dem Server initiieren kann (wenn eine solche Sitzung vorhanden ist), oder legt diesen fest.

IsOneWay

Ruft einen Wert ab, der angibt, ob ein Vorgang eine Antwortnachricht zurückgibt, oder legt diesen fest.

IsTerminating

Ruft einen Wert ab, der angibt, ob der Dienstvorgang bewirkt, dass der Server die Sitzung schließt, nachdem die Antwortnachricht gesendet wurde.

KnownTypes

Ruft die bekannten Typen ab, die der Vorgangsbeschreibung zugeordnet sind.

Messages

Ruft Beschreibungen der Nachrichten ab, die den Vorgang ausmachen, oder legt sie fest.

Name

Ruft den Namen der Vorgangsbeschreibung ab oder legt ihn fest.

OperationBehaviors

Ruft den Satz des Verhaltens für den Vorgang ab.

ProtectionLevel

Ruft die Schutzebene für den Vorgang ab oder legt diese fest.

SyncMethod

Ruft die Dienstsynchronisierungsmethode der Vorgangsbeschreibung ab oder legt sie fest.

TaskMethod

Ruft die für den Aufgabenvorgang verwendete Methode ab oder legt diese fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ShouldSerializeProtectionLevel()

Gibt einen Wert zurück, der angibt, ob die ProtectionLevel-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: