語言

MessageFault 類別

定義

代表記憶體中可傳遞的 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 故障的文字說明。

方法

名稱 Description
CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer, String, String)

回傳 MessageFault 一個新物件,使用指定的 FaultCode、 FaultReason、 詳細物件、 XmlObjectSerializer、 演員和節點值。

CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer, String)

回傳 MessageFault 一個使用指定 FaultCode、 、 FaultReason詳細物件 XmlObjectSerializer和 actor 的新物件。

CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer)

回傳 MessageFault 一個新物件,使用指定的 FaultCode、 FaultReason、 詳細物件 和 XmlObjectSerializer 物件。

CreateFault(FaultCode, FaultReason, Object)

回傳 MessageFault 一個使用指定 FaultCode、 FaultReason、 和 詳細物件的新物件。

CreateFault(FaultCode, FaultReason)

回傳一個 MessageFault 使用指定 FaultCode 和 FaultReason 物件的新物件。

CreateFault(FaultCode, String)

回傳 MessageFault 一個使用指定 FaultCode Reason(錯誤原因)的新物件。

CreateFault(Message, Int32)

回傳 MessageFault 一個新物件,該物件使用指定的 Message 訊息緩衝區最大緩衝區大小。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetDetail<T>()

回傳訊息錯誤的詳細物件。

GetDetail<T>(XmlObjectSerializer)

回傳使用指定 XmlObjectSerializer的細節物件。

GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetReaderAtDetailContents()

回傳 XmlDictionaryReader 一個位於 細節物件 MessageFault上的物件。

GetType()

取得目前實例的 Type。

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
OnGetReaderAtDetailContents()

當在派生類別中呼叫時,回傳 XmlDictionaryReader 一個位於 MessageFault.

OnWriteDetail(XmlDictionaryWriter, EnvelopeVersion)

在撰寫詳細內容前被引用。

OnWriteDetailContents(XmlDictionaryWriter)

當在非抽象派生類別中覆寫時,會寫入詳細元素的內容。

OnWriteStartDetail(XmlDictionaryWriter, EnvelopeVersion)

使用指定的 XmlDictionaryWriter SOAP 包絡版本寫入起始元素。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)
WasHeaderNotUnderstood(MessageHeaders, String, String)

會取得一個值,表示 SOAP 訊息標頭是否被理解。

WriteTo(XmlDictionaryWriter, EnvelopeVersion)

寫入使用指定 XmlDictionaryWriter 且 SOAP 包絡版本的訊息錯誤。

WriteTo(XmlWriter, EnvelopeVersion)

寫入使用指定 XmlWriter 且 SOAP 包絡版本的訊息錯誤。

適用於