OperationDescription Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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) |