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, der eine Beschreibung der Nachrichten bereitstellt, aus denen der Vorgang besteht.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Vererbung
-
OperationDescription
Beispiele
Im folgenden Beispiel wird die OperationDescription von der Operations Eigenschaft der ContractDescription Klasse zurückgegebene Auflistung verwendet. Der Code durchläuft die Sammlung von Endpunkten und druckt jeden Endpunktnamen sowie den Namen der einzelnen Vorgänge im Endpunkt.
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 (WCF)-Vertrag ist eine Sammlung von Vorgängen, die angibt, was der Endpunkt mit der Außenwelt kommuniziert. Jeder Vorgang ist ein Nachrichtenaustausch. Beispielsweise eine Anforderungsnachricht und eine zugeordnete Antwortnachricht, die einen Anforderungs-/Antwortnachrichtenaustausch bildet.
Ein ContractDescription Objekt wird verwendet, um Verträge und deren Vorgänge zu beschreiben. Innerhalb eines ContractDescriptionVertragsvorgangs verfügt jeder Vertragsvorgang über einen entsprechenden, OperationDescription der Aspekte des Vorgangs beschreibt, z. B. ob der Vorgang unidirektionale Oder Anforderung/Antwort ist. Jede OperationDescription beschreibt auch die Nachrichten, aus denen der Vorgang mithilfe einer Auflistung von MessageDescription Objekten besteht. ContractDescription enthält einen Verweis auf eine Schnittstelle, die den Vertrag mithilfe des Programmiermodells definiert. Diese Schnittstelle ist mit ServiceContractAttribute, und seine Methoden, die Endpunktvorgängen entsprechen, werden mit OperationContractAttributegekennzeichnet.
Viele der Eigenschaften, für die es sich OperationDescription um entsprechende Eigenschaften im WCF-Programmiermodell OperationContractAttributefür , z. B. . IsTerminating
Konstruktoren
| Name | Beschreibung |
|---|---|
| OperationDescription(String, ContractDescription) |
Initialisiert eine neue Instanz der OperationDescription Klasse mit einem angegebenen Namen und einer Vertragsbeschreibung. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| BeginMethod |
Dient zum Abrufen oder Festlegen der Begin-Methode des Vorgangs. |
| Behaviors |
Dient zum Abrufen oder Festlegen des Vorgangsverhaltens, das dem Vorgang zugeordnet ist. |
| DeclaringContract |
Ruft den Vertrag ab, zu dem der Vorgang gehört, oder legt diesen fest. |
| EndMethod |
Dient zum Abrufen oder Festlegen der Endmethode des Vorgangs. |
| Faults |
Ruft die Beschreibungen der Fehler ab, die der Vorgangsbeschreibung zugeordnet sind. |
| HasProtectionLevel |
Ruft einen Wert ab, der angibt, ob der Vorgang einen Schutzebenensatz festgelegt hat. |
| IsInitiating |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Methode einen Vorgang implementiert, der eine Sitzung auf dem Server initiieren kann (wenn eine solche Sitzung vorhanden ist). |
| IsOneWay |
Ruft einen Wert ab, der angibt, ob ein Vorgang eine Antwortnachricht zurückgibt, oder legt diesen fest. |
| IsTerminating |
Ruft einen Wert ab oder legt diesen fest, der angibt, ob der Dienstvorgang bewirkt, dass der Server die Sitzung schließt, nachdem die Antwortnachricht, falls zutreffend, gesendet wurde. |
| KnownTypes |
Ruft die bekannten Typen ab, die der Vorgangsbeschreibung zugeordnet sind. |
| Messages |
Dient zum Abrufen oder Festlegen der Beschreibungen der Nachrichten, aus denen der Vorgang besteht. |
| Name |
Dient zum Abrufen oder Festlegen des Namens der Vorgangsbeschreibung. |
| OperationBehaviors |
Ruft den Satz von Verhaltensweisen für den Vorgang ab. |
| ProtectionLevel |
Dient zum Abrufen oder Festlegen der Schutzebene für den Vorgang. |
| SyncMethod |
Dient zum Abrufen oder Festlegen der Dienstsynchronisierungsmethode der Vorgangsbeschreibung. |
| TaskMethod |
Dient zum Abrufen oder Festlegen der Methode, die für den Vorgangsvorgang verwendet wird. |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ShouldSerializeProtectionLevel() |
Gibt einen Wert zurück, der angibt, ob sich die ProtectionLevel Eigenschaft vom Standardwert geändert hat und serialisiert werden soll. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |