Leer en inglés

Compartir a través de


OperationDescription Clase

Definición

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

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 ejecuta una iteración en la colección de extremos e imprime cada nombre de extremo, así como el nombre de cada una de las operaciones del mismo.

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);
                    }
                }
            }
        }
    }
}

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 forman un intercambio de mensajes solicitud/respuesta.

Se utiliza un objeto ContractDescription para describir los contratos y sus operaciones. Dentro de una ContractDescription, a cada operación de contrato le corresponde una OperationDescription que describe aspectos de la operación, por ejemplo, si la operación es unidireccional o solicitud/respuesta. Cada OperationDescription también describe los mensajes que constituyen la operación mediante una colección de objetos MessageDescription. ContractDescription contiene una referencia a una interfaz que define el contrato mediante el modelo de programación. Esta interfaz se marca con ServiceContractAttribute, y aquellos métodos que se correspondan con las operaciones del 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

OperationDescription(String, ContractDescription)

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

Propiedades

BeginMethod

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

Behaviors

Obtiene o establece los comportamientos de la 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 de finalización 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 se ha establecido un nivel de protección para la operació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 este tipo de sesión existe).

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 constituyen 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 de servicio de la descripción de la operación.

TaskMethod

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

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ShouldSerializeProtectionLevel()

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

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Producto Versiones
.NET Core 1.0, Core 1.1, 8 (package-provided), 9 (package-provided)
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
UWP 10.0