OperationDescription Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa a descrição de uma operação contratual que fornece uma descrição das mensagens que compõem a operação.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Herança
-
OperationDescription
Exemplos
O exemplo seguinte utiliza o retorno OperationDescription da coleção devolvido pela Operations propriedade da ContractDescription classe. O código itera pela coleção de endpoints e imprime o nome de cada endpoint, bem como o nome de cada operação no endpoint.
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
Observações
Um contrato da Windows Communication Foundation (WCF) é um conjunto de operações que especifica o que o endpoint comunica ao mundo exterior. Cada operação é uma troca de mensagens. Por exemplo, uma mensagem de pedido e uma mensagem de resposta associada formando uma troca de mensagens de pedido/resposta.
Um ContractDescription objeto é usado para descrever contratos e as suas operações. Dentro de um ContractDescription, cada operação contratual tem um correspondente OperationDescription que descreve aspetos da operação, como se a operação é unidirecional ou de pedido/resposta. Cada uma OperationDescription 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. Esta interface é marcada com ServiceContractAttribute, e os seus métodos que correspondem às operações de endpoint são marcados com OperationContractAttribute.
Muitas das propriedades em OperationDescription têm propriedades correspondentes no modelo de programação WCF em OperationContractAttribute, por exemplo, IsTerminating.
Construtores
| Name | Description |
|---|---|
| OperationDescription(String, ContractDescription) |
Inicializa uma nova instância da OperationDescription classe com um nome e descrição do contrato especificados. |
Propriedades
| Name | Description |
|---|---|
| BeginMethod |
Obtém ou define o método de início da operação. |
| Behaviors |
Obtém ou define os comportamentos de 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 final 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 teve um nível de proteção definido. |
| IsInitiating |
Recebe ou define um valor que indica se o método implementa uma operação que pode iniciar uma sessão no servidor (caso tal sessão exista). |
| 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 com que o servidor feche a sessão após o envio da mensagem de resposta, se houver. |
| KnownTypes |
Obtém os tipos conhecidos associados à descrição da operação. |
| Messages |
Obtém ou define as descrições das mensagens que compõem a operação. |
| Name |
Recebe 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 definem o nível de proteção para a operação. |
| SyncMethod |
Obtém ou define o método de sincronização de serviços da descrição da operação. |
| TaskMethod |
Obtém ou define o método usado para a operação da tarefa. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ShouldSerializeProtectionLevel() |
Devolve um valor que indica se a ProtectionLevel propriedade mudou em relação ao seu valor padrão e deve ser serializada. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |