OperationDescription Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa a descrição de uma operação do contrato que fornece uma descrição das mensagens que formam a operação.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Herança
-
OperationDescription
Exemplos
O exemplo a seguir usa o OperationDescription retornado da coleção retornado pela Operations propriedade da ContractDescription classe. O código itera por meio da coleção de pontos de extremidade e imprime cada nome de ponto de extremidade, bem como o nome de cada operação no ponto de extremidade.
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
Comentários
Um contrato da WCF (Windows Communication Foundation) é uma coleção de operações que especifica o que o ponto de extremidade se comunica com o mundo exterior. Cada operação é uma troca de mensagens. Por exemplo, uma mensagem de solicitação e uma mensagem de resposta associada formando uma troca de mensagens de solicitação/resposta.
Um ContractDescription objeto é usado para descrever contratos e suas operações. Dentro de uma ContractDescription, cada operação de contrato tem um correspondente OperationDescription que descreve aspectos da operação, como se a operação é unidirecional ou de solicitação/resposta. Cada OperationDescription um também descreve as mensagens que compõem a operação usando uma coleção de MessageDescription objetos. ContractDescription contém uma referência a uma interface que define o contrato usando o modelo de programação. Essa interface é marcada com ServiceContractAttribute, e seus métodos que correspondem às operações de ponto de extremidade são marcados com OperationContractAttribute.
Muitas das propriedades em OperationDescription que têm propriedades correspondentes no modelo OperationContractAttributede programação do WCF, por exemplo, IsTerminating.
Construtores
OperationDescription(String, ContractDescription) |
Inicializa uma nova instância da classe OperationDescription com uma descrição de nome e uma descrição de contrato especificadas. |
Propriedades
BeginMethod |
Obtém ou define o método de início da operação. |
Behaviors |
Obtém ou define os comportamentos da operação associados à operação. |
DeclaringContract |
Obtém ou define o contrato ao qual a operação pertence. |
EndMethod |
Obtém ou define o método de término da operação. |
Faults |
Obtém as descrições das falhas associadas à descrição da operação. |
HasProtectionLevel |
Obtém um valor que indica se a operação tem um nível de proteção definido. |
IsInitiating |
Obtém ou define um valor que indica se o método implementa uma operação que pode iniciar uma sessão no servidor (se essa sessão existir). |
IsOneWay |
Obtém ou define um valor que indica se uma operação retorna uma mensagem de resposta. |
IsTerminating |
Obtém ou define um valor que indica se a operação de serviço faz o servidor fechar a sessão depois que a mensagem de resposta, se houver, for enviada. |
KnownTypes |
Obtém os tipos conhecidos associados à descrição da operação. |
Messages |
Obtém ou define as descrições das mensagens que formam a operação. |
Name |
Obtém ou define o nome da descrição da operação. |
OperationBehaviors |
Obtém o conjunto de comportamentos para a operação. |
ProtectionLevel |
Obtém ou define o nível de proteção para a operação. |
SyncMethod |
Obtém ou define o método de sincronização do serviço da descrição da operação. |
TaskMethod |
Obtém ou define o método usado para a operação da tarefa. |
Métodos
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ShouldSerializeProtectionLevel() |
Retorna um valor que indica se a propriedade ProtectionLevel foi alterada do valor padrão e se deve ser serializada. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |