MessageFault 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表記憶體中可傳遞的 CreateMessage SOAP 錯誤表示,以產生包含錯誤的訊息。
public ref class MessageFault abstract
public abstract class MessageFault
type MessageFault = class
Public MustInherit Class MessageFault
- 繼承
-
MessageFault
範例
以下範例展示了最常見的 。MessageFault 在 ProvideFaultHandleError 中 和 都傳遞 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 錯誤訊息處理的地方使用。
建構函式
| 名稱 | Description |
|---|---|
| MessageFault() |
當在衍生類別中被呼叫時,會初始化該 MessageFault 類別的新實例。 |
屬性
| 名稱 | Description |
|---|---|
| Actor |
取得或設定演員的價值。 |
| Code |
取得 SOAP 故障碼。 |
| HasDetail |
會得到一個值,表示是否 MessageFault 擁有詳細物件。 |
| IsMustUnderstandFault |
會取得一個值,表示此錯誤是否因未能理解 SOAP 標頭而引起。 |
| Node |
取得包含訊息路徑上哪個 SOAP 節點導致錯誤的資訊的 SOAP 節點。 |
| Reason |
會收到 SOAP 故障的文字說明。 |