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 iteruje kolekci koncových bodů a vytiskne název každého 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čuje, co koncový bod komunikuje s vnějším světem. Každá operace je výměna zpráv. Například zpráva požadavku a přidružená zpráva odpovědi, která tvoří výměnu zpráv žádosti a odpovědi.

Objekt ContractDescription se používá k popisu kontraktů a jejich operací. ContractDescriptionV rámci nástroje má každá operace kontraktu odpovídajícíOperationDescription, která popisuje aspekty operace, například jestli je operace jednosměrná, nebo zda je operace jednosměrná nebo zda je požadavek/odpověď. Každý z nich 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 ServiceContractAttributea jeho metody, které odpovídají operacím koncového bodu, jsou označeny pomocí OperationContractAttribute.

Mnoho vlastností OperationDescription má odpovídající vlastnosti v programovacím modelu WCF na OperationContractAttribute, například IsTerminating.

Konstruktory

OperationDescription(String, ContractDescription)

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

Vlastnosti

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á popisy chyb přidružených k popisu operace.

HasProtectionLevel

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

IsInitiating

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

IsOneWay

Získá nebo nastaví hodnotu, která označuje, zda operace vrátí zprávu odpovědi.

IsTerminating

Získá nebo nastaví hodnotu, která označuje, zda operace služby způsobí, že server zavře relaci 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í pro operaci.

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 úlohy.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Slouží jako výchozí hashovací funkce.

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

Získá aktuální Type instanci.

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

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

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

Vrátí hodnotu, která označuje, zda ProtectionLevel se vlastnost změnila od 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