OperationDescription Klas

Definitie

Vertegenwoordigt de beschrijving van een contractbewerking die een beschrijving biedt van de berichten waaruit de bewerking bestaat.

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

Voorbeelden

In het volgende voorbeeld wordt gebruikgemaakt van de OperationDescription geretourneerde verzameling die wordt geretourneerd door de Operations eigenschap van de ContractDescription klasse. De code doorloopt de verzameling eindpunten en drukt elke eindpuntnaam af, evenals de naam van elke bewerking in het eindpunt.

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

Opmerkingen

Een WCF-contract (Windows Communication Foundation) is een verzameling bewerkingen die aangeeft wat het eindpunt communiceert met de buitenwereld. Elke bewerking is een berichtuitwisseling. Een aanvraagbericht en een gekoppeld antwoordbericht vormen bijvoorbeeld een aanvraag-/antwoordberichtuitwisseling.

Een ContractDescription object wordt gebruikt om contracten en hun bewerkingen te beschrijven. Binnen een ContractDescription, elke contractbewerking heeft een bijbehorende OperationDescription die aspecten van de bewerking beschrijft, zoals of de bewerking eenrichtings- of aanvraag/antwoord is. Elk OperationDescription document beschrijft ook de berichten waaruit de bewerking bestaat met behulp van MessageDescription een verzameling objecten. ContractDescription bevat een verwijzing naar een interface die het contract definieert met behulp van het programmeermodel. Deze interface is gemarkeerd met ServiceContractAttributeen de bijbehorende methoden die overeenkomen met eindpuntbewerkingen worden gemarkeerd met OperationContractAttribute.

Veel van de eigenschappen hebben OperationDescription bijbehorende eigenschappen in het WCF-programmeermodel op OperationContractAttribute, bijvoorbeeld IsTerminating.

Constructors

Name Description
OperationDescription(String, ContractDescription)

Initialiseert een nieuw exemplaar van de OperationDescription klasse met een opgegeven naam en contractbeschrijving.

Eigenschappen

Name Description
BeginMethod

Hiermee haalt u de beginmethode van de bewerking op of stelt u deze in.

Behaviors

Hiermee haalt u het gedrag van de bewerking op of stelt u deze in die aan de bewerking zijn gekoppeld.

DeclaringContract

Hiermee haalt u het contract op waartoe de bewerking behoort of stelt u deze in.

EndMethod

Hiermee haalt u de eindmethode van de bewerking op of stelt u deze in.

Faults

Hiermee haalt u de beschrijvingen op van de fouten die zijn gekoppeld aan de beschrijving van de bewerking.

HasProtectionLevel

Hiermee wordt een waarde opgehaald die aangeeft of voor de bewerking een beveiligingsniveau is ingesteld.

IsInitiating

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de methode een bewerking implementeert die een sessie op de server kan initiƫren (als een dergelijke sessie bestaat).

IsOneWay

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of een bewerking een antwoordbericht retourneert.

IsTerminating

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de servicebewerking ervoor zorgt dat de server de sessie sluit na het antwoordbericht, indien van toepassing, wordt verzonden.

KnownTypes

Hiermee haalt u de bekende typen op die zijn gekoppeld aan de beschrijving van de bewerking.

Messages

Hiermee worden de beschrijvingen opgehaald of ingesteld van de berichten waaruit de bewerking bestaat.

Name

Hiermee haalt u de naam van de beschrijving van de bewerking op of stelt u deze in.

OperationBehaviors

Hiermee haalt u de set gedragingen voor de bewerking op.

ProtectionLevel

Hiermee haalt u het beveiligingsniveau voor de bewerking op of stelt u dit in.

SyncMethod

Hiermee haalt u de servicesynchronisatiemethode van de beschrijving van de bewerking op of stelt u deze in.

TaskMethod

Hiermee haalt u de methode op die wordt gebruikt voor de taakbewerking of stelt u deze in.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ShouldSerializeProtectionLevel()

Retourneert een waarde die aangeeft of de eigenschap is gewijzigd van de ProtectionLevel standaardwaarde en moet worden geserialiseerd.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op