OperationDescription Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente la description d'une opération de contrat qui fournit une description des messages qui composent l'opération.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Héritage
-
OperationDescription
Exemples
L’exemple suivant utilise le OperationDescription retourné à partir de la collection retournée par la Operations propriété de la ContractDescription classe . Le code itère au sein de la collection de points de terminaison et imprime chaque nom de point de terminaison, ainsi que celui de chaque opération du point de terminaison.
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
Remarques
Un contrat Windows Communication Foundation (WCF) est une collection d’opérations qui spécifie ce que le point de terminaison communique au monde extérieur. Chaque opération est un échange de messages. Par exemple, message de demande et message de réponse associé constituant un échange de messages de demande/réponse.
Un objet ContractDescription permet de décrire des contrats et leurs opérations. Dans une ContractDescription, chaque opération de contrat dispose d'une OperationDescription correspondante qui décrit des aspects de l'opération (par exemple, si l'opération est à sens unique ou de type demande/réponse). Chaque OperationDescription décrit également les messages qui composent l'opération à l'aide d'une collection d'objets MessageDescription. La ContractDescription contient une référence à une interface qui définit le contrat à l'aide du modèle de programmation. Cette interface est marquée avec ServiceContractAttribute et ses méthodes qui correspondent à des opérations de point de terminaison sont marquées avec OperationContractAttribute.
La plupart des propriétés sur OperationDescription ont des propriétés correspondantes dans le modèle de programmation WCF sur OperationContractAttribute, par exemple , IsTerminating.
Constructeurs
OperationDescription(String, ContractDescription) |
Initialise une nouvelle instance de la classe OperationDescription avec un nom et une description de contrat spécifiés. |
Propriétés
BeginMethod |
Obtient ou définit la méthode Begin de l'opération. |
Behaviors |
Obtient ou définit les comportements d'opération associés à l'opération. |
DeclaringContract |
Obtient ou définit le contrat auquel appartient l'opération. |
EndMethod |
Obtient ou définit la méthode End de l'opération. |
Faults |
Obtient les descriptions des erreurs associées à la description d'opération. |
HasProtectionLevel |
Obtient une valeur qui indique si un niveau de protection a été défini pour l'opération. |
IsInitiating |
Obtient ou définit une valeur qui indique si la méthode implémente une opération qui peut initialiser une session sur le serveur (si une telle session existe). |
IsOneWay |
Obtient ou définit une valeur qui indique si une opération retourne un message de réponse. |
IsTerminating |
Obtient ou définit une valeur qui indique si l'opération de service conduit le serveur à fermer la session après l'envoi du message de réponse (le cas échéant). |
KnownTypes |
Obtient les types connus associés à la description d'opération. |
Messages |
Obtient ou définit les descriptions des messages qui composent l'opération. |
Name |
Obtient ou définit le nom de la description d'opération. |
OperationBehaviors |
Obtient le jeu de comportements de l'opération. |
ProtectionLevel |
Obtient ou définit le niveau de protection de l'opération. |
SyncMethod |
Obtient ou définit la méthode de synchronisation de service de la description d’opération. |
TaskMethod |
Obtient ou définit la méthode utilisée pour l'opération. |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ShouldSerializeProtectionLevel() |
Retourne une valeur qui indique si la propriété ProtectionLevel utilise une autre valeur que sa valeur par défaut et doit être sérialisée. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |