OperationDescription Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt de beschrijving van een contractbewerking die een beschrijving biedt van de berichten waaruit de bewerking bestaat.
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- Overname
-
OperationDescription
Voorbeelden
In het volgende voorbeeld wordt gebruikgemaakt van de OperationDescription geretourneerde verzameling die wordt geretourneerd door de Operations eigenschap van de ContractDescription klasse. De code doorloopt de verzameling eindpunten en drukt elke eindpuntnaam af, evenals de naam van elke bewerking in het eindpunt.
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
Opmerkingen
Een WCF-contract (Windows Communication Foundation) is een verzameling bewerkingen die aangeeft wat het eindpunt communiceert met de buitenwereld. Elke bewerking is een berichtuitwisseling. Een aanvraagbericht en een gekoppeld antwoordbericht vormen bijvoorbeeld een aanvraag-/antwoordberichtuitwisseling.
Een ContractDescription object wordt gebruikt om contracten en hun bewerkingen te beschrijven. Binnen een ContractDescription, elke contractbewerking heeft een bijbehorende OperationDescription die aspecten van de bewerking beschrijft, zoals of de bewerking eenrichtings- of aanvraag/antwoord is. Elk OperationDescription document beschrijft ook de berichten waaruit de bewerking bestaat met behulp van MessageDescription een verzameling objecten. ContractDescription bevat een verwijzing naar een interface die het contract definieert met behulp van het programmeermodel. Deze interface is gemarkeerd met ServiceContractAttributeen de bijbehorende methoden die overeenkomen met eindpuntbewerkingen worden gemarkeerd met OperationContractAttribute.
Veel van de eigenschappen hebben OperationDescription bijbehorende eigenschappen in het WCF-programmeermodel op OperationContractAttribute, bijvoorbeeld IsTerminating.
Constructors
| Name | Description |
|---|---|
| OperationDescription(String, ContractDescription) |
Initialiseert een nieuw exemplaar van de OperationDescription klasse met een opgegeven naam en contractbeschrijving. |
Eigenschappen
| Name | Description |
|---|---|
| BeginMethod |
Hiermee haalt u de beginmethode van de bewerking op of stelt u deze in. |
| Behaviors |
Hiermee haalt u het gedrag van de bewerking op of stelt u deze in die aan de bewerking zijn gekoppeld. |
| DeclaringContract |
Hiermee haalt u het contract op waartoe de bewerking behoort of stelt u deze in. |
| EndMethod |
Hiermee haalt u de eindmethode van de bewerking op of stelt u deze in. |
| Faults |
Hiermee haalt u de beschrijvingen op van de fouten die zijn gekoppeld aan de beschrijving van de bewerking. |
| HasProtectionLevel |
Hiermee wordt een waarde opgehaald die aangeeft of voor de bewerking een beveiligingsniveau is ingesteld. |
| IsInitiating |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de methode een bewerking implementeert die een sessie op de server kan initiƫren (als een dergelijke sessie bestaat). |
| IsOneWay |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of een bewerking een antwoordbericht retourneert. |
| IsTerminating |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de servicebewerking ervoor zorgt dat de server de sessie sluit na het antwoordbericht, indien van toepassing, wordt verzonden. |
| KnownTypes |
Hiermee haalt u de bekende typen op die zijn gekoppeld aan de beschrijving van de bewerking. |
| Messages |
Hiermee worden de beschrijvingen opgehaald of ingesteld van de berichten waaruit de bewerking bestaat. |
| Name |
Hiermee haalt u de naam van de beschrijving van de bewerking op of stelt u deze in. |
| OperationBehaviors |
Hiermee haalt u de set gedragingen voor de bewerking op. |
| ProtectionLevel |
Hiermee haalt u het beveiligingsniveau voor de bewerking op of stelt u dit in. |
| SyncMethod |
Hiermee haalt u de servicesynchronisatiemethode van de beschrijving van de bewerking op of stelt u deze in. |
| TaskMethod |
Hiermee haalt u de methode op die wordt gebruikt voor de taakbewerking of stelt u deze in. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ShouldSerializeProtectionLevel() |
Retourneert een waarde die aangeeft of de eigenschap is gewijzigd van de ProtectionLevel standaardwaarde en moet worden geserialiseerd. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |