OperationDescription Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar beskrivningen av en kontraktsåtgärd som innehåller en beskrivning av de meddelanden som utgör åtgärden.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Arv
-
OperationDescription
Exempel
I följande exempel används den OperationDescription returnerade från samlingen som returneras av Operations -egenskapen för ContractDescription klassen. Koden itererar genom samlingen med slutpunkter och skriver ut varje slutpunktsnamn samt namnet på varje åtgärd i slutpunkten.
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
Kommentarer
Ett Windows Communication Foundation-kontrakt (WCF) är en samling åtgärder som anger vad slutpunkten kommunicerar med omvärlden. Varje åtgärd är ett meddelandeutbyte. Till exempel ett begärandemeddelande och ett associerat svarsmeddelande som bildar ett utbyte av begäran/svarsmeddelanden.
Ett ContractDescription objekt används för att beskriva kontrakt och deras åtgärder. I en ContractDescriptionhar varje kontraktåtgärd en motsvarande OperationDescription som beskriver aspekter av åtgärden, till exempel om åtgärden är enkelriktad eller begäran/svar. Var och OperationDescription en beskriver också de meddelanden som utgör åtgärden med hjälp av MessageDescription en samling objekt. ContractDescription innehåller en referens till ett gränssnitt som definierar kontraktet med hjälp av programmeringsmodellen. Det här gränssnittet är markerat med ServiceContractAttribute, och dess metoder som motsvarar slutpunktsåtgärder markeras med OperationContractAttribute.
Många av egenskaperna på OperationDescription har motsvarande egenskaper i WCF-programmeringsmodellen på OperationContractAttribute, till exempel IsTerminating.
Konstruktorer
| Name | Description |
|---|---|
| OperationDescription(String, ContractDescription) |
Initierar en ny instans av OperationDescription klassen med ett angivet namn och en kontraktsbeskrivning. |
Egenskaper
| Name | Description |
|---|---|
| BeginMethod |
Hämtar eller anger åtgärdens startmetod. |
| Behaviors |
Hämtar eller anger de åtgärdsbeteenden som är associerade med åtgärden. |
| DeclaringContract |
Hämtar eller anger det kontrakt som åtgärden tillhör. |
| EndMethod |
Hämtar eller anger åtgärdens slutmetod. |
| Faults |
Hämtar beskrivningarna av de fel som är associerade med åtgärdsbeskrivningen. |
| HasProtectionLevel |
Hämtar ett värde som anger om åtgärden har en skyddsnivåuppsättning. |
| IsInitiating |
Hämtar eller anger ett värde som anger om metoden implementerar en åtgärd som kan initiera en session på servern (om en sådan session finns). |
| IsOneWay |
Hämtar eller anger ett värde som anger om en åtgärd returnerar ett svarsmeddelande. |
| IsTerminating |
Hämtar eller anger ett värde som anger om tjänståtgärden gör att servern stänger sessionen efter att svarsmeddelandet har skickats. |
| KnownTypes |
Hämtar kända typer som är associerade med åtgärdsbeskrivningen. |
| Messages |
Hämtar eller anger beskrivningarna av de meddelanden som utgör åtgärden. |
| Name |
Hämtar eller anger namnet på åtgärdsbeskrivningen. |
| OperationBehaviors |
Hämtar uppsättningen beteenden för åtgärden. |
| ProtectionLevel |
Hämtar eller anger skyddsnivån för åtgärden. |
| SyncMethod |
Hämtar eller anger tjänstsynkroniseringsmetoden för åtgärdsbeskrivningen. |
| TaskMethod |
Hämtar eller anger den metod som används för aktivitetsåtgärden. |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ShouldSerializeProtectionLevel() |
Returnerar ett värde som anger om egenskapen ProtectionLevel har ändrats från standardvärdet och ska serialiseras. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |