OperationDescription Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje popis operace kontraktu, která poskytuje popis zpráv, které tvoří operaci.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Dědičnost
-
OperationDescription
Příklady
Následující příklad používá vrácenou OperationDescription z kolekce vrácenou Operations vlastností ContractDescription třídy. Kód prochází kolekcí koncových bodů a vytiskne každý název koncového bodu a také název každé operace v koncovém bodu.
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
Poznámky
Kontrakt WCF (Windows Communication Foundation) je kolekce operací, které určují, co koncový bod komunikuje s vnějším světem. Každá operace je výměna zpráv. Například žádost o zprávu a přidruženou odpověď, která tvoří výměnu zpráv žádosti nebo odpovědi.
Objekt ContractDescription se používá k popisu kontraktů a jejich operací. ContractDescriptionKaždá operace kontraktu má odpovídající OperationDescription aspekty operace, například jestli je operace jednosměrná, nebo požadavek/odpověď. Každý OperationDescription také popisuje zprávy, které tvoří operaci pomocí kolekce MessageDescription objektů. ContractDescription obsahuje odkaz na rozhraní, které definuje kontrakt pomocí programovacího modelu. Toto rozhraní je označeno ServiceContractAttributepomocí a jeho metody, které odpovídají operacím OperationContractAttributekoncového bodu jsou označeny .
Mnoho vlastností má odpovídající vlastnosti OperationDescription v programovacím modelu WCF například OperationContractAttributeIsTerminating.
Konstruktory
| Name | Description |
|---|---|
| OperationDescription(String, ContractDescription) |
Inicializuje novou instanci OperationDescription třídy se zadaným názvem a popisem kontraktu. |
Vlastnosti
| Name | Description |
|---|---|
| BeginMethod |
Získá nebo nastaví počáteční metodu operace. |
| Behaviors |
Získá nebo nastaví chování operace přidružené k operaci. |
| DeclaringContract |
Získá nebo nastaví kontrakt, do kterého operace patří. |
| EndMethod |
Získá nebo nastaví koncovou metodu operace. |
| Faults |
Získá popis chyb přidružených k popisu operace. |
| HasProtectionLevel |
Získá hodnotu, která označuje, zda operace má nastavenou úroveň ochrany. |
| IsInitiating |
Získá nebo nastaví hodnotu, která určuje, zda metoda implementuje operaci, která může zahájit relaci na serveru (pokud taková relace existuje). |
| IsOneWay |
Získá nebo nastaví hodnotu, která určuje, zda operace vrací zprávu odpovědi. |
| IsTerminating |
Získá nebo nastaví hodnotu, která určuje, zda operace služby způsobí ukončení relace po odeslání zprávy odpovědi, pokud existuje. |
| KnownTypes |
Získá známé typy přidružené k popisu operace. |
| Messages |
Získá nebo nastaví popisy zpráv, které tvoří operaci. |
| Name |
Získá nebo nastaví název popisu operace. |
| OperationBehaviors |
Získá sadu chování operace. |
| ProtectionLevel |
Získá nebo nastaví úroveň ochrany pro operaci. |
| SyncMethod |
Získá nebo nastaví metodu synchronizace služby popisu operace. |
| TaskMethod |
Získá nebo nastaví metodu použitou pro operaci úkolu. |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ShouldSerializeProtectionLevel() |
Vrátí hodnotu, která určuje, zda ProtectionLevel se vlastnost změnila z výchozí hodnoty a měla by být serializována. |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |