Partager via


OperationDescription Classe

Définition

Représente la description d'une opération de contrat qui fournit une description des messages qui composent l'opération.

public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
Héritage
OperationDescription

Exemples

L’exemple suivant utilise le OperationDescription retourné à partir de la collection retournée par la Operations propriété de la ContractDescription classe . Le code itère au sein de la collection de points de terminaison et imprime chaque nom de point de terminaison, ainsi que celui de chaque opération du point de terminaison.

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

Remarques

Un contrat Windows Communication Foundation (WCF) est une collection d’opérations qui spécifie ce que le point de terminaison communique au monde extérieur. Chaque opération est un échange de messages. Par exemple, message de demande et message de réponse associé constituant un échange de messages de demande/réponse.

Un objet ContractDescription permet de décrire des contrats et leurs opérations. Dans une ContractDescription, chaque opération de contrat dispose d'une OperationDescription correspondante qui décrit des aspects de l'opération (par exemple, si l'opération est à sens unique ou de type demande/réponse). Chaque OperationDescription décrit également les messages qui composent l'opération à l'aide d'une collection d'objets MessageDescription. La ContractDescription contient une référence à une interface qui définit le contrat à l'aide du modèle de programmation. Cette interface est marquée avec ServiceContractAttribute et ses méthodes qui correspondent à des opérations de point de terminaison sont marquées avec OperationContractAttribute.

La plupart des propriétés sur OperationDescription ont des propriétés correspondantes dans le modèle de programmation WCF sur OperationContractAttribute, par exemple , IsTerminating.

Constructeurs

OperationDescription(String, ContractDescription)

Initialise une nouvelle instance de la classe OperationDescription avec un nom et une description de contrat spécifiés.

Propriétés

BeginMethod

Obtient ou définit la méthode Begin de l'opération.

Behaviors

Obtient ou définit les comportements d'opération associés à l'opération.

DeclaringContract

Obtient ou définit le contrat auquel appartient l'opération.

EndMethod

Obtient ou définit la méthode End de l'opération.

Faults

Obtient les descriptions des erreurs associées à la description d'opération.

HasProtectionLevel

Obtient une valeur qui indique si un niveau de protection a été défini pour l'opération.

IsInitiating

Obtient ou définit une valeur qui indique si la méthode implémente une opération qui peut initialiser une session sur le serveur (si une telle session existe).

IsOneWay

Obtient ou définit une valeur qui indique si une opération retourne un message de réponse.

IsTerminating

Obtient ou définit une valeur qui indique si l'opération de service conduit le serveur à fermer la session après l'envoi du message de réponse (le cas échéant).

KnownTypes

Obtient les types connus associés à la description d'opération.

Messages

Obtient ou définit les descriptions des messages qui composent l'opération.

Name

Obtient ou définit le nom de la description d'opération.

OperationBehaviors

Obtient le jeu de comportements de l'opération.

ProtectionLevel

Obtient ou définit le niveau de protection de l'opération.

SyncMethod

Obtient ou définit la méthode de synchronisation de service de la description d’opération.

TaskMethod

Obtient ou définit la méthode utilisée pour l'opération.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ShouldSerializeProtectionLevel()

Retourne une valeur qui indique si la propriété ProtectionLevel utilise une autre valeur que sa valeur par défaut et doit être sérialisée.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à