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 usato il 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 di Windows Communication Foundation (WCF) è una raccolta di operazioni che specifica cosa comunica l'endpoint al mondo esterno. Ogni operazione consiste in uno scambio di messaggi. Ad esempio, un messaggio di richiesta e un messaggio di risposta associato costituiscono un scambio di messaggi di tipo request/reply.
Un oggetto ContractDescription viene utilizzato per descrivere i contratti e le relative operazioni. All'interno di un elemento ContractDescription, ogni operazione del contratto dispone di una classe OperationDescription corrispondente che descrive gli aspetti dell'operazione, ad esempio se si tratta di un'operazione unidirezionale o di tipo request/reply. Ogni classe OperationDescription descrive a sua volta i messaggi che costituiscono l'operazione, utilizzando una raccolta di oggetti MessageDescription. ContractDescription contiene un riferimento a un'interfaccia che definisce il contratto utilizzando il modello di programmazione. Questa interfaccia è contrassegnata con ServiceContractAttribute e i metodi che corrispondono alle operazioni dell'endpoint sono contrassegnati con OperationContractAttribute.
Molte delle proprietà in OperationDescription hanno proprietà corrispondenti nel modello di programmazione WCF in OperationContractAttribute, ad esempio IsTerminating.
Costruttori
OperationDescription(String, ContractDescription) |
Inizializza una nuova istanza della classe OperationDescription con un nome e una descrizione del contratto specificati. |
Proprietà
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 al quale appartiene l'operazione. |
EndMethod |
Ottiene o imposta il metodo End dell'operazione. |
Faults |
Ottiene le descrizioni degli errori associati alla descrizione dell'operazione. |
HasProtectionLevel |
Ottiene un valore che indica se è stato impostato un livello di protezione per l'operazione. |
IsInitiating |
Ottiene o imposta un valore che indica se il metodo implementa un'operazione in grado di 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 conosciuti 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 della proprietà. |
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 della proprietà. |
TaskMethod |
Ottiene o imposta il metodo utilizzato per l'operazione dell'attività. |
Metodi
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 l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ShouldSerializeProtectionLevel() |
Restituisce un valore che indica se la proprietà ProtectionLevel è cambiata rispetto al valore predefinito e deve essere serializzata. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |