OperationDescription Klass

Definition

Representerar beskrivningen av en kontraktsåtgärd som innehåller en beskrivning av de meddelanden som utgör åtgärden.

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

Exempel

I följande exempel används den OperationDescription returnerade från samlingen som returneras av Operations -egenskapen för ContractDescription klassen. Koden itererar genom samlingen med slutpunkter och skriver ut varje slutpunktsnamn samt namnet på varje åtgärd i slutpunkten.

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

Kommentarer

Ett Windows Communication Foundation-kontrakt (WCF) är en samling åtgärder som anger vad slutpunkten kommunicerar med omvärlden. Varje åtgärd är ett meddelandeutbyte. Till exempel ett begärandemeddelande och ett associerat svarsmeddelande som bildar ett utbyte av begäran/svarsmeddelanden.

Ett ContractDescription objekt används för att beskriva kontrakt och deras åtgärder. I en ContractDescriptionhar varje kontraktåtgärd en motsvarande OperationDescription som beskriver aspekter av åtgärden, till exempel om åtgärden är enkelriktad eller begäran/svar. Var och OperationDescription en beskriver också de meddelanden som utgör åtgärden med hjälp av MessageDescription en samling objekt. ContractDescription innehåller en referens till ett gränssnitt som definierar kontraktet med hjälp av programmeringsmodellen. Det här gränssnittet är markerat med ServiceContractAttribute, och dess metoder som motsvarar slutpunktsåtgärder markeras med OperationContractAttribute.

Många av egenskaperna på OperationDescription har motsvarande egenskaper i WCF-programmeringsmodellen på OperationContractAttribute, till exempel IsTerminating.

Konstruktorer

Name Description
OperationDescription(String, ContractDescription)

Initierar en ny instans av OperationDescription klassen med ett angivet namn och en kontraktsbeskrivning.

Egenskaper

Name Description
BeginMethod

Hämtar eller anger åtgärdens startmetod.

Behaviors

Hämtar eller anger de åtgärdsbeteenden som är associerade med åtgärden.

DeclaringContract

Hämtar eller anger det kontrakt som åtgärden tillhör.

EndMethod

Hämtar eller anger åtgärdens slutmetod.

Faults

Hämtar beskrivningarna av de fel som är associerade med åtgärdsbeskrivningen.

HasProtectionLevel

Hämtar ett värde som anger om åtgärden har en skyddsnivåuppsättning.

IsInitiating

Hämtar eller anger ett värde som anger om metoden implementerar en åtgärd som kan initiera en session på servern (om en sådan session finns).

IsOneWay

Hämtar eller anger ett värde som anger om en åtgärd returnerar ett svarsmeddelande.

IsTerminating

Hämtar eller anger ett värde som anger om tjänståtgärden gör att servern stänger sessionen efter att svarsmeddelandet har skickats.

KnownTypes

Hämtar kända typer som är associerade med åtgärdsbeskrivningen.

Messages

Hämtar eller anger beskrivningarna av de meddelanden som utgör åtgärden.

Name

Hämtar eller anger namnet på åtgärdsbeskrivningen.

OperationBehaviors

Hämtar uppsättningen beteenden för åtgärden.

ProtectionLevel

Hämtar eller anger skyddsnivån för åtgärden.

SyncMethod

Hämtar eller anger tjänstsynkroniseringsmetoden för åtgärdsbeskrivningen.

TaskMethod

Hämtar eller anger den metod som används för aktivitetsåtgärden.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ShouldSerializeProtectionLevel()

Returnerar ett värde som anger om egenskapen ProtectionLevel har ändrats från standardvärdet och ska serialiseras.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för