OperationDescription Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje opis operacji kontraktu, która zawiera opis komunikatów tworzących operację.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Dziedziczenie
-
OperationDescription
Przykłady
W poniższym przykładzie użyto OperationDescription elementu zwróconego z kolekcji zwróconej Operations przez właściwość ContractDescription klasy . Kod wykonuje iterację po kolekcji punktów końcowych i drukuje każdą nazwę punktu końcowego, a także nazwę każdej operacji w punkcie końcowym.
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
Uwagi
Kontrakt programu Windows Communication Foundation (WCF) to zbiór operacji określających, co punkt końcowy komunikuje się ze światem zewnętrznym. Każda operacja jest wymianą komunikatów. Na przykład komunikat żądania i skojarzona wiadomość odpowiedzi tworząca wymianę wiadomości żądania/odpowiedzi.
Obiekt ContractDescription służy do opisywania kontraktów i ich operacji. ContractDescriptionW ramach operacji każda operacja kontraktu ma odpowiedni element OperationDescription opisujący aspekty operacji, takie jak to, czy operacja jest jednokierunkowa, czy żądanie/odpowiedź. Każdy z nich OperationDescription opisuje również komunikaty tworzące operację przy użyciu kolekcji MessageDescription obiektów. ContractDescription Zawiera odwołanie do interfejsu definiującego kontrakt przy użyciu modelu programowania. Ten interfejs jest oznaczony za pomocą ServiceContractAttributeelementu , a jego metody, które odpowiadają operacjom punktu końcowego, są oznaczone znakiem OperationContractAttribute.
Wiele właściwości obiektu OperationDescription ma odpowiednie właściwości w modelu programowania WCF w systemie OperationContractAttribute, IsTerminatingna przykład .
Konstruktory
OperationDescription(String, ContractDescription) |
Inicjuje OperationDescription nowe wystąpienie klasy z określoną nazwą i opisem kontraktu. |
Właściwości
BeginMethod |
Pobiera lub ustawia metodę rozpoczęcia operacji. |
Behaviors |
Pobiera lub ustawia zachowania operacji skojarzone z operacją. |
DeclaringContract |
Pobiera lub ustawia kontrakt, do którego należy operacja. |
EndMethod |
Pobiera lub ustawia metodę końcową operacji. |
Faults |
Pobiera opisy błędów skojarzonych z opisem operacji. |
HasProtectionLevel |
Pobiera wartość wskazującą, czy operacja miała ustawiony poziom ochrony. |
IsInitiating |
Pobiera lub ustawia wartość wskazującą, czy metoda implementuje operację, która może zainicjować sesję na serwerze (jeśli taka sesja istnieje). |
IsOneWay |
Pobiera lub ustawia wartość wskazującą, czy operacja zwraca komunikat odpowiedzi. |
IsTerminating |
Pobiera lub ustawia wartość wskazującą, czy operacja usługi powoduje zamknięcie sesji przez serwer po wysłaniu komunikatu odpowiedzi, jeśli istnieje. |
KnownTypes |
Pobiera znane typy skojarzone z opisem operacji. |
Messages |
Pobiera lub ustawia opisy komunikatów tworzących operację. |
Name |
Pobiera lub ustawia nazwę opisu operacji. |
OperationBehaviors |
Pobiera zestaw zachowań dla operacji. |
ProtectionLevel |
Pobiera lub ustawia poziom ochrony dla operacji. |
SyncMethod |
Pobiera lub ustawia metodę synchronizacji usługi opisu operacji. |
TaskMethod |
Pobiera lub ustawia metodę używaną dla operacji zadania. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ShouldSerializeProtectionLevel() |
Zwraca wartość wskazującą, czy ProtectionLevel właściwość zmieniła się z wartości domyślnej i powinna być serializowana. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |