Sdílet prostřednictvím


OperationDescription Třída

Definice

Představuje popis operace kontraktu, která poskytuje popis zpráv, které tvoří operaci.

public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
Dědičnost
OperationDescription

Příklady

Následující příklad používá vrácenou OperationDescription z kolekce vrácenou Operations vlastností ContractDescription třídy. Kód prochází kolekcí koncových bodů a vytiskne každý název koncového bodu a také název každé operace v koncovém bodu.

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

Poznámky

Kontrakt WCF (Windows Communication Foundation) je kolekce operací, které určují, co koncový bod komunikuje s vnějším světem. Každá operace je výměna zpráv. Například žádost o zprávu a přidruženou odpověď, která tvoří výměnu zpráv žádosti nebo odpovědi.

Objekt ContractDescription se používá k popisu kontraktů a jejich operací. ContractDescriptionKaždá operace kontraktu má odpovídající OperationDescription aspekty operace, například jestli je operace jednosměrná, nebo požadavek/odpověď. Každý OperationDescription také popisuje zprávy, které tvoří operaci pomocí kolekce MessageDescription objektů. ContractDescription obsahuje odkaz na rozhraní, které definuje kontrakt pomocí programovacího modelu. Toto rozhraní je označeno ServiceContractAttributepomocí a jeho metody, které odpovídají operacím OperationContractAttributekoncového bodu jsou označeny .

Mnoho vlastností má odpovídající vlastnosti OperationDescription v programovacím modelu WCF například OperationContractAttributeIsTerminating.

Konstruktory

Name Description
OperationDescription(String, ContractDescription)

Inicializuje novou instanci OperationDescription třídy se zadaným názvem a popisem kontraktu.

Vlastnosti

Name Description
BeginMethod

Získá nebo nastaví počáteční metodu operace.

Behaviors

Získá nebo nastaví chování operace přidružené k operaci.

DeclaringContract

Získá nebo nastaví kontrakt, do kterého operace patří.

EndMethod

Získá nebo nastaví koncovou metodu operace.

Faults

Získá popis chyb přidružených k popisu operace.

HasProtectionLevel

Získá hodnotu, která označuje, zda operace má nastavenou úroveň ochrany.

IsInitiating

Získá nebo nastaví hodnotu, která určuje, zda metoda implementuje operaci, která může zahájit relaci na serveru (pokud taková relace existuje).

IsOneWay

Získá nebo nastaví hodnotu, která určuje, zda operace vrací zprávu odpovědi.

IsTerminating

Získá nebo nastaví hodnotu, která určuje, zda operace služby způsobí ukončení relace po odeslání zprávy odpovědi, pokud existuje.

KnownTypes

Získá známé typy přidružené k popisu operace.

Messages

Získá nebo nastaví popisy zpráv, které tvoří operaci.

Name

Získá nebo nastaví název popisu operace.

OperationBehaviors

Získá sadu chování operace.

ProtectionLevel

Získá nebo nastaví úroveň ochrany pro operaci.

SyncMethod

Získá nebo nastaví metodu synchronizace služby popisu operace.

TaskMethod

Získá nebo nastaví metodu použitou pro operaci úkolu.

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ShouldSerializeProtectionLevel()

Vrátí hodnotu, která určuje, zda ProtectionLevel se vlastnost změnila z výchozí hodnoty a měla by být serializována.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro