OperationDescription Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die Beschreibung eines Vertragsvorgangs dar, in der Nachrichten beschrieben werden, die den Vorgang ausmachen.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Vererbung
-
OperationDescription
Beispiele
Im folgenden Beispiel wird das von der OperationDescription Auflistung zurückgegebene verwendet, das von der Operations -Eigenschaft der ContractDescription -Klasse zurückgegeben wird. Mit folgendem Code wird die Auflistung von Endpunkten durchlaufen und jeder Endpunktname sowie der Name jedes Vorgangs im Endpunkt ausgegeben.
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
Hinweise
Ein Windows Communication Foundation-Vertrag (WCF) ist eine Sammlung von Vorgängen, die angibt, was der Endpunkt an die Außenwelt kommuniziert. Jeder Vorgang ist ein Nachrichtenaustausch. Beispielsweise bilden eine Anforderungsnachricht und eine zugeordnete Antwortnachricht einen Anforderung/Antwort-Nachrichtenaustausch.
Ein ContractDescription-Objekt wird verwendet, um Verträge und ihre Vorgänge zu beschreiben. Innerhalb einer ContractDescription verfügt jeder Vertragsvorgang über eine entsprechende OperationDescription, die die Aspekte des Vorgangs beschreibt, wie beispielsweise, ob es sich um einen unidirektionalen Vorgang oder einen Anforderung/Antwort-Vorgang handelt. Jede OperationDescription beschreibt auch die Nachrichten, aus denen der Vorgang besteht, unter Verwendung einer Auflistung von MessageDescription-Objekten. ContractDescription enthält einen Verweis auf eine Schnittstelle, die den Vertrag über das Programmiermodell definiert. Diese Schnittstelle ist mit ServiceContractAttribute gekennzeichnet, und die Methoden, die Endpunktvorgängen entsprechen, sind mit OperationContractAttribute markiert.
Viele der Eigenschaften für verfügen über OperationDescription entsprechende Eigenschaften im WCF-Programmiermodell für OperationContractAttribute, z. B IsTerminating. .
Konstruktoren
OperationDescription(String, ContractDescription) |
Initialisiert eine neue Instanz der OperationDescription-Klasse mit einem angegebenen Namen und einer angegebenen Vertragsbeschreibung. |
Eigenschaften
BeginMethod |
Ruft die Begin-Methode des Vorgangs ab oder legt sie fest. |
Behaviors |
Ruft die dem Vorgang zugeordneten Vorgangsverhalten ab bzw. legt diese fest. |
DeclaringContract |
Ruft den Vertrag ab, dem der Vorgang zugeordnet ist, oder legt diesen fest. |
EndMethod |
Ruft die End-Methode des Vorgangs ab oder legt sie fest. |
Faults |
Ruft die Beschreibungen der Fehler ab, die der Vorgangsbeschreibung zugeordnet sind. |
HasProtectionLevel |
Ruft einen Wert ab, der angibt, ob für den Vorgang eine Schutzebene festgelegt ist. |
IsInitiating |
Ruft einen Wert ab, der angibt, ob die Methode einen Vorgang implementiert, der eine Sitzung auf dem Server initiieren kann (wenn eine solche Sitzung vorhanden ist), oder legt diesen fest. |
IsOneWay |
Ruft einen Wert ab, der angibt, ob ein Vorgang eine Antwortnachricht zurückgibt, oder legt diesen fest. |
IsTerminating |
Ruft einen Wert ab, der angibt, ob der Dienstvorgang bewirkt, dass der Server die Sitzung schließt, nachdem die Antwortnachricht gesendet wurde. |
KnownTypes |
Ruft die bekannten Typen ab, die der Vorgangsbeschreibung zugeordnet sind. |
Messages |
Ruft Beschreibungen der Nachrichten ab, die den Vorgang ausmachen, oder legt sie fest. |
Name |
Ruft den Namen der Vorgangsbeschreibung ab oder legt ihn fest. |
OperationBehaviors |
Ruft den Satz des Verhaltens für den Vorgang ab. |
ProtectionLevel |
Ruft die Schutzebene für den Vorgang ab oder legt diese fest. |
SyncMethod |
Ruft die Dienstsynchronisierungsmethode der Vorgangsbeschreibung ab oder legt sie fest. |
TaskMethod |
Ruft die für den Aufgabenvorgang verwendete Methode ab oder legt diese fest. |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ShouldSerializeProtectionLevel() |
Gibt einen Wert zurück, der angibt, ob die ProtectionLevel-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |