MessageFault 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示 SOAP 錯誤在記憶體中的表示,此錯誤可傳遞給 CreateMessage 來建立包含錯誤的訊息。
public ref class MessageFault abstract
public abstract class MessageFault
type MessageFault = class
Public MustInherit Class MessageFault
- 繼承
-
MessageFault
範例
下列程式碼範例會示範 MessageFault 最常見的使用方式。 ProvideFault 和 HandleError 都會傳入 MessageFault 物件,該物件可加以修改及傳回給系統 (如果是 ProvideFault),或是用來執行某些與自訂錯誤相關的行為 (如果是 HandleError)。
在此範例中 ProvideFault ,方法會將所有 Exception 物件轉換成 MessageFault 包含 FaultException<TDetail> 型 GreetingFault
別對象的物件,並傳回自定義 MessageFault 至 WCF 的物件。
#region IErrorHandler Members
public bool HandleError(Exception error)
{
Console.WriteLine("HandleError called.");
// Returning true indicates you performed your behavior.
return true;
}
// This is a trivial implementation that converts Exception to FaultException<GreetingFault>.
public void ProvideFault(
Exception error,
MessageVersion ver,
ref Message msg
)
{
Console.WriteLine("ProvideFault called. Converting Exception to GreetingFault....");
FaultException<GreetingFault> fe
= new FaultException<GreetingFault>(new GreetingFault(error.Message));
MessageFault fault = fe.CreateMessageFault();
msg = Message.CreateMessage(
ver,
fault,
"http://microsoft.wcf.documentation/ISampleService/SampleMethodGreetingFaultFault"
);
}
#endregion
#Region "IErrorHandler Members"
Public Function HandleError(ByVal [error] As Exception) As Boolean Implements IErrorHandler.HandleError
Console.WriteLine("HandleError called.")
' Returning true indicates you performed your behavior.
Return True
End Function
' This is a trivial implementation that converts Exception to FaultException<GreetingFault>.
Public Sub ProvideFault(ByVal [error] As Exception, ByVal ver As MessageVersion, ByRef msg As Message) Implements IErrorHandler.ProvideFault
Console.WriteLine("ProvideFault called. Converting Exception to GreetingFault....")
Dim fe As New FaultException(Of GreetingFault)(New GreetingFault([error].Message))
Dim fault As MessageFault = fe.CreateMessageFault()
msg = Message.CreateMessage(ver, fault, "http://microsoft.wcf.documentation/ISampleService/SampleMethodGreetingFaultFault")
End Sub
#End Region
備註
每當您需要記憶體中的 SOAP 錯誤 (該錯誤可加以修改並用來建立包含錯誤資訊的 SOAP 訊息) 時,請使用 MessageFault 類別。
一般來說,當您程式設計 MessageFault 介面時,會使用 IErrorHandler 類別。 在此案例中,Windows Communication Foundation (WCF) 傳遞 MessageFault 物件,而且您可以針對特定需求使用它 (,例如,您可以自定義 MessageFault 或 來記錄錯誤資訊) 。 但是,MessageFault 可用於需要自訂 SOAP 錯誤訊息處理的任何地方。
建構函式
MessageFault() |
在衍生類別中呼叫時,初始化 MessageFault 類別的新執行個體。 |
屬性
Actor |
取得或設定 Actor 的值。 |
Code |
取得 SOAP 錯誤碼。 |
HasDetail |
取得值,此值指出 MessageFault 是否有詳細資料物件。 |
IsMustUnderstandFault |
取得或設定值,這個值指出此錯誤是否因為無法瞭解 SOAP 標頭所產生。 |
Node |
取得 SOAP 節點,此節點包含訊息路徑上哪個 SOAP 節點造成錯誤的相關資訊。 |
Reason |
取得 SOAP 錯誤的文字描述。 |