Udostępnij za pośrednictwem


OperationDescription Klasa

Definicja

Reprezentuje opis operacji kontraktu, która zawiera opis komunikatów tworzących operację.

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

Przykłady

W poniższym przykładzie użyto OperationDescription elementu zwróconego z kolekcji zwróconej Operations przez właściwość ContractDescription klasy . Kod wykonuje iterację po kolekcji punktów końcowych i drukuje każdą nazwę punktu końcowego, a także nazwę każdej operacji w punkcie końcowym.

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

Uwagi

Kontrakt programu Windows Communication Foundation (WCF) to zbiór operacji określających, co punkt końcowy komunikuje się ze światem zewnętrznym. Każda operacja jest wymianą komunikatów. Na przykład komunikat żądania i skojarzona wiadomość odpowiedzi tworząca wymianę wiadomości żądania/odpowiedzi.

Obiekt ContractDescription służy do opisywania kontraktów i ich operacji. ContractDescriptionW ramach operacji każda operacja kontraktu ma odpowiedni element OperationDescription opisujący aspekty operacji, takie jak to, czy operacja jest jednokierunkowa, czy żądanie/odpowiedź. Każdy z nich OperationDescription opisuje również komunikaty tworzące operację przy użyciu kolekcji MessageDescription obiektów. ContractDescription Zawiera odwołanie do interfejsu definiującego kontrakt przy użyciu modelu programowania. Ten interfejs jest oznaczony za pomocą ServiceContractAttributeelementu , a jego metody, które odpowiadają operacjom punktu końcowego, są oznaczone znakiem OperationContractAttribute.

Wiele właściwości obiektu OperationDescription ma odpowiednie właściwości w modelu programowania WCF w systemie OperationContractAttribute, IsTerminatingna przykład .

Konstruktory

OperationDescription(String, ContractDescription)

Inicjuje OperationDescription nowe wystąpienie klasy z określoną nazwą i opisem kontraktu.

Właściwości

BeginMethod

Pobiera lub ustawia metodę rozpoczęcia operacji.

Behaviors

Pobiera lub ustawia zachowania operacji skojarzone z operacją.

DeclaringContract

Pobiera lub ustawia kontrakt, do którego należy operacja.

EndMethod

Pobiera lub ustawia metodę końcową operacji.

Faults

Pobiera opisy błędów skojarzonych z opisem operacji.

HasProtectionLevel

Pobiera wartość wskazującą, czy operacja miała ustawiony poziom ochrony.

IsInitiating

Pobiera lub ustawia wartość wskazującą, czy metoda implementuje operację, która może zainicjować sesję na serwerze (jeśli taka sesja istnieje).

IsOneWay

Pobiera lub ustawia wartość wskazującą, czy operacja zwraca komunikat odpowiedzi.

IsTerminating

Pobiera lub ustawia wartość wskazującą, czy operacja usługi powoduje zamknięcie sesji przez serwer po wysłaniu komunikatu odpowiedzi, jeśli istnieje.

KnownTypes

Pobiera znane typy skojarzone z opisem operacji.

Messages

Pobiera lub ustawia opisy komunikatów tworzących operację.

Name

Pobiera lub ustawia nazwę opisu operacji.

OperationBehaviors

Pobiera zestaw zachowań dla operacji.

ProtectionLevel

Pobiera lub ustawia poziom ochrony dla operacji.

SyncMethod

Pobiera lub ustawia metodę synchronizacji usługi opisu operacji.

TaskMethod

Pobiera lub ustawia metodę używaną dla operacji zadania.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ShouldSerializeProtectionLevel()

Zwraca wartość wskazującą, czy ProtectionLevel właściwość zmieniła się z wartości domyślnej i powinna być serializowana.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy