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 許多屬性在 上的 OperationContractAttribute WCF 程式設計模型中都有對應的屬性,例如 。 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) |