Freigeben über


OperationDescription Klasse

Definition

Stellt die Beschreibung eines Vertragsvorgangs dar, der eine Beschreibung der Nachrichten bereitstellt, aus denen der Vorgang besteht.

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

Beispiele

Im folgenden Beispiel wird die OperationDescription von der Operations Eigenschaft der ContractDescription Klasse zurückgegebene Auflistung verwendet. Der Code durchläuft die Sammlung von Endpunkten und druckt jeden Endpunktnamen sowie den Namen der einzelnen Vorgänge im Endpunkt.

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 (WCF)-Vertrag ist eine Sammlung von Vorgängen, die angibt, was der Endpunkt mit der Außenwelt kommuniziert. Jeder Vorgang ist ein Nachrichtenaustausch. Beispielsweise eine Anforderungsnachricht und eine zugeordnete Antwortnachricht, die einen Anforderungs-/Antwortnachrichtenaustausch bildet.

Ein ContractDescription Objekt wird verwendet, um Verträge und deren Vorgänge zu beschreiben. Innerhalb eines ContractDescriptionVertragsvorgangs verfügt jeder Vertragsvorgang über einen entsprechenden, OperationDescription der Aspekte des Vorgangs beschreibt, z. B. ob der Vorgang unidirektionale Oder Anforderung/Antwort ist. Jede OperationDescription beschreibt auch die Nachrichten, aus denen der Vorgang mithilfe einer Auflistung von MessageDescription Objekten besteht. ContractDescription enthält einen Verweis auf eine Schnittstelle, die den Vertrag mithilfe des Programmiermodells definiert. Diese Schnittstelle ist mit ServiceContractAttribute, und seine Methoden, die Endpunktvorgängen entsprechen, werden mit OperationContractAttributegekennzeichnet.

Viele der Eigenschaften, für die es sich OperationDescription um entsprechende Eigenschaften im WCF-Programmiermodell OperationContractAttributefür , z. B. . IsTerminating

Konstruktoren

Name Beschreibung
OperationDescription(String, ContractDescription)

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

Eigenschaften

Name Beschreibung
BeginMethod

Dient zum Abrufen oder Festlegen der Begin-Methode des Vorgangs.

Behaviors

Dient zum Abrufen oder Festlegen des Vorgangsverhaltens, das dem Vorgang zugeordnet ist.

DeclaringContract

Ruft den Vertrag ab, zu dem der Vorgang gehört, oder legt diesen fest.

EndMethod

Dient zum Abrufen oder Festlegen der Endmethode des Vorgangs.

Faults

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

HasProtectionLevel

Ruft einen Wert ab, der angibt, ob der Vorgang einen Schutzebenensatz festgelegt hat.

IsInitiating

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Methode einen Vorgang implementiert, der eine Sitzung auf dem Server initiieren kann (wenn eine solche Sitzung vorhanden ist).

IsOneWay

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

IsTerminating

Ruft einen Wert ab oder legt diesen fest, der angibt, ob der Dienstvorgang bewirkt, dass der Server die Sitzung schließt, nachdem die Antwortnachricht, falls zutreffend, gesendet wurde.

KnownTypes

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

Messages

Dient zum Abrufen oder Festlegen der Beschreibungen der Nachrichten, aus denen der Vorgang besteht.

Name

Dient zum Abrufen oder Festlegen des Namens der Vorgangsbeschreibung.

OperationBehaviors

Ruft den Satz von Verhaltensweisen für den Vorgang ab.

ProtectionLevel

Dient zum Abrufen oder Festlegen der Schutzebene für den Vorgang.

SyncMethod

Dient zum Abrufen oder Festlegen der Dienstsynchronisierungsmethode der Vorgangsbeschreibung.

TaskMethod

Dient zum Abrufen oder Festlegen der Methode, die für den Vorgangsvorgang verwendet wird.

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ShouldSerializeProtectionLevel()

Gibt einen Wert zurück, der angibt, ob sich die ProtectionLevel Eigenschaft vom 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: