OperationDescription Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta la descrizione di un'operazione del contratto che fornisce una descrizione dei messaggi che costituiscono l'operazione.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Ereditarietà
-
OperationDescription
Esempio
Nell'esempio seguente viene utilizzato l'oggetto OperationDescription restituito dall'insieme restituito dalla Operations proprietà della ContractDescription classe . Il codice scorre la raccolta di endpoint e stampa ogni nome di endpoint, nonché il nome di ogni operazione nell'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
Commenti
Un contratto Windows Communication Foundation (WCF) è una raccolta di operazioni che specifica l'endpoint che comunica con l'esterno. Ogni operazione è uno scambio di messaggi. Ad esempio, un messaggio di richiesta e un messaggio di risposta associato che formano uno scambio di messaggi di richiesta/risposta.
Un ContractDescription oggetto viene utilizzato per descrivere i contratti e le relative operazioni. All'interno di , ContractDescriptionogni operazione del contratto ha un oggetto corrispondente OperationDescription che descrive gli aspetti dell'operazione, ad esempio se l'operazione è unidirezionale o richiesta/risposta. Ognuno OperationDescription descrive anche i messaggi che costituiscono l'operazione usando una raccolta di MessageDescription oggetti . ContractDescription contiene un riferimento a un'interfaccia che definisce il contratto utilizzando il modello di programmazione. Questa interfaccia è contrassegnata con ServiceContractAttributee i relativi metodi che corrispondono alle operazioni degli endpoint sono contrassegnati con OperationContractAttribute.
Molte delle proprietà in OperationDescription hanno proprietà corrispondenti nel modello di programmazione WCF in OperationContractAttribute, ad esempio IsTerminating.
Costruttori
| Nome | Descrizione |
|---|---|
| OperationDescription(String, ContractDescription) |
Inizializza una nuova istanza della OperationDescription classe con un nome e una descrizione del contratto specificati. |
Proprietà
| Nome | Descrizione |
|---|---|
| BeginMethod |
Ottiene o imposta il metodo begin dell'operazione. |
| Behaviors |
Ottiene o imposta i comportamenti dell'operazione associati all'operazione. |
| DeclaringContract |
Ottiene o imposta il contratto a cui appartiene l'operazione. |
| EndMethod |
Ottiene o imposta il metodo finale dell'operazione. |
| Faults |
Ottiene le descrizioni degli errori associati alla descrizione dell'operazione. |
| HasProtectionLevel |
Ottiene un valore che indica se l'operazione ha impostato un livello di protezione. |
| IsInitiating |
Ottiene o imposta un valore che indica se il metodo implementa un'operazione che può avviare una sessione nel server (se tale sessione esiste). |
| IsOneWay |
Ottiene o imposta un valore che indica se l'operazione restituisce un messaggio di risposta. |
| IsTerminating |
Ottiene o imposta un valore che indica se l'operazione di servizio causa la chiusura della sessione da parte del server dopo l'invio di un eventuale messaggio di risposta. |
| KnownTypes |
Ottiene i tipi noti associati alla descrizione dell'operazione. |
| Messages |
Ottiene o imposta le descrizioni dei messaggi che costituiscono l'operazione. |
| Name |
Ottiene o imposta il nome della descrizione dell'operazione. |
| OperationBehaviors |
Ottiene il set di comportamenti per l'operazione. |
| ProtectionLevel |
Ottiene o imposta il livello di protezione per l'operazione. |
| SyncMethod |
Ottiene o imposta il metodo di sincronizzazione del servizio della descrizione dell'operazione. |
| TaskMethod |
Ottiene o imposta il metodo utilizzato per l'operazione dell'attività. |
Metodi
| Nome | Descrizione |
|---|---|
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ShouldSerializeProtectionLevel() |
Restituisce un valore che indica se la ProtectionLevel proprietà è stata modificata rispetto al valore predefinito e deve essere serializzata. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |