OperationDescription 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示协定操作的说明,该协定操作可提供组成操作的消息的说明。
public ref class OperationDescription
public class OperationDescription
type OperationDescription = class
Public Class OperationDescription
- 继承
-
OperationDescription
示例
以下示例使用 OperationDescription 类的 属性返回的 集合中返回 Operations 的 ContractDescription 。 该代码循环访问终结点集合,并输出每个终结点的名称以及终结点中的每个操作的名称。
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
注解
Windows Communication Foundation (WCF) 协定是指定终结点与外部世界通信的操作集合。 每个操作都是一次消息交换。 例如,构成请求/回复消息交换的请求消息以及与该请求消息关联的回复消息。
ContractDescription 对象用于描述协定及其操作。 在 ContractDescription 内,每个协定操作都具有相应的 OperationDescription,它会对操作的各个方面进行描述,例如操作是单向的还是请求/回复。 每个 OperationDescription 还描述使用 对象集合 MessageDescription 构成操作的消息。 ContractDescription 包含有可利用编程模型定义协定的接口的引用。 此接口带有 ServiceContractAttribute 标记,该接口的与终结点操作相对应的方法带有 OperationContractAttribute 标记。
上的 OperationDescription 许多属性在 上的 OperationContractAttributeWCF 编程模型中具有相应的属性, IsTerminating例如 。
构造函数
OperationDescription(String, ContractDescription) |
使用指定的名称和协定说明初始化 OperationDescription 类的新实例。 |
属性
BeginMethod |
获取或设置操作的开始方法。 |
Behaviors |
获取或设置与此操作关联的操作行为。 |
DeclaringContract |
获取或设置该操作所属的协定。 |
EndMethod |
获取或设置操作的结束方法。 |
Faults |
获取与操作说明关联的错误的说明。 |
HasProtectionLevel |
获取指示操作是否已设置保护级别的值。 |
IsInitiating |
获取或设置一个值,该值指示方法是否实现可在服务器上启动会话(如果存在会话)的操作。 |
IsOneWay |
获取或设置一个值,该值指示操作是否返回答复消息。 |
IsTerminating |
获取或设置一个值,该值指示服务操作在发送答复消息(如果存在)后,是否会导致服务器关闭会话。 |
KnownTypes |
获取与操作说明关联的已知类型。 |
Messages |
获取或设置组成操作的消息的说明。 |
Name |
获取或设置操作说明的名称。 |
OperationBehaviors |
获取操作的行为集。 |
ProtectionLevel |
获取或设置操作的保护级别。 |
SyncMethod |
获取或设置操作说明的服务同步方法。 |
TaskMethod |
获取或设置用于任务操作的方法。 |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ShouldSerializeProtectionLevel() |
返回一个值,该值指示 ProtectionLevel 属性是否已更改,不再是默认值且应对其进行序列化。 |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |