Compartir vía


OperationDescription Clase

Definición

Representa la descripción de una operación de contrato que proporciona una descripción de los mensajes que componen la operación.

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

Ejemplos

En el ejemplo siguiente se usa el OperationDescription devuelto de la colección devuelta por la Operations propiedad de la ContractDescription clase . El código recorre en iteración la colección de puntos de conexión e imprime cada nombre de punto de conexión, así como el nombre de cada operación en el punto de conexión.

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

Comentarios

Un contrato de Windows Communication Foundation (WCF) es una colección de operaciones que especifica lo que el punto de conexión se comunica con el mundo exterior. Cada operación es un intercambio de mensajes. Por ejemplo, un mensaje de solicitud y un mensaje de respuesta asociado que forman un intercambio de mensajes de solicitud o respuesta.

Un ContractDescription objeto se usa para describir contratos y sus operaciones. Dentro de , ContractDescriptioncada operación de contrato tiene un correspondiente OperationDescription que describe aspectos de la operación, como si la operación es unidireccional o solicitud/respuesta. Cada OperationDescription uno también describe los mensajes que componen la operación mediante una colección de MessageDescription objetos . ContractDescription contiene una referencia a una interfaz que define el contrato mediante el modelo de programación. Esta interfaz está marcada con ServiceContractAttributey sus métodos correspondientes a las operaciones de punto de conexión se marcan con OperationContractAttribute.

Muchas de las propiedades de OperationDescription tienen propiedades correspondientes en el modelo de programación WCF en OperationContractAttribute, por ejemplo, IsTerminating.

Constructores

Nombre Description
OperationDescription(String, ContractDescription)

Inicializa una nueva instancia de la OperationDescription clase con un nombre y una descripción de contrato especificados.

Propiedades

Nombre Description
BeginMethod

Obtiene o establece el método begin de la operación.

Behaviors

Obtiene o establece los comportamientos de operación asociados a la operación.

DeclaringContract

Obtiene o establece el contrato al que pertenece la operación.

EndMethod

Obtiene o establece el método final de la operación.

Faults

Obtiene las descripciones de los errores asociados a la descripción de la operación.

HasProtectionLevel

Obtiene un valor que indica si la operación ha tenido establecido un nivel de protección.

IsInitiating

Obtiene o establece un valor que indica si el método implementa una operación que puede iniciar una sesión en el servidor (si existe dicha sesión).

IsOneWay

Obtiene o establece un valor que indica si una operación devuelve un mensaje de respuesta.

IsTerminating

Obtiene o establece un valor que indica si la operación de servicio hace que el servidor cierre la sesión después de enviar el mensaje de respuesta, si lo hubiera.

KnownTypes

Obtiene los tipos conocidos asociados a la descripción de la operación.

Messages

Obtiene o establece las descripciones de los mensajes que componen la operación.

Name

Obtiene o establece el nombre de la descripción de la operación.

OperationBehaviors

Obtiene el conjunto de comportamientos de la operación.

ProtectionLevel

Obtiene o establece el nivel de protección de la operación.

SyncMethod

Obtiene o establece el método de sincronización del servicio de la descripción de la operación.

TaskMethod

Obtiene o establece el método usado para la operación de tarea.

Métodos

Nombre Description
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ShouldSerializeProtectionLevel()

Devuelve un valor que indica si la ProtectionLevel propiedad ha cambiado de su valor predeterminado y se debe serializar.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a