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 iteruje kolekci koncových bodů a vytiskne název každého 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čuje, co koncový bod komunikuje s vnějším světem. Každá operace je výměna zpráv. Například zpráva požadavku a přidružená zpráva odpovědi, která tvoří výměnu zpráv žádosti a odpovědi.
Objekt ContractDescription se používá k popisu kontraktů a jejich operací. ContractDescriptionV rámci nástroje má každá operace kontraktu odpovídajícíOperationDescription, která popisuje aspekty operace, například jestli je operace jednosměrná, nebo zda je operace jednosměrná nebo zda je požadavek/odpověď. Každý z nich 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 ServiceContractAttributea jeho metody, které odpovídají operacím koncového bodu, jsou označeny pomocí OperationContractAttribute.
Mnoho vlastností OperationDescription má odpovídající vlastnosti v programovacím modelu WCF na OperationContractAttribute, například IsTerminating.
Konstruktory
OperationDescription(String, ContractDescription) |
Inicializuje novou instanci OperationDescription třídy se zadaným názvem a popisem kontraktu. |
Vlastnosti
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á popisy chyb přidružených k popisu operace. |
HasProtectionLevel |
Získá hodnotu, která označuje, zda má operace nastavenou úroveň ochrany. |
IsInitiating |
Získá nebo nastaví hodnotu, která označuje, zda metoda implementuje operaci, která může zahájit relaci na serveru (pokud taková relace existuje). |
IsOneWay |
Získá nebo nastaví hodnotu, která označuje, zda operace vrátí zprávu odpovědi. |
IsTerminating |
Získá nebo nastaví hodnotu, která označuje, zda operace služby způsobí, že server zavře relaci 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í pro operaci. |
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 úlohy. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ShouldSerializeProtectionLevel() |
Vrátí hodnotu, která označuje, zda ProtectionLevel se vlastnost změnila od 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) |