MessageFault 类

定义

表示 SOAP 错误在内存中的表示形式,该错误可以传递到 CreateMessage 以创建包含错误的消息。

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 错误消息的任何地方使用。

构造函数

MessageFault()

在派生类中调用时,初始化 MessageFault 类的新实例。

属性

Actor

获取或设置操作者的值。

Code

获取 SOAP 错误代码。

HasDetail

获取一个值,该值指示 MessageFault 是否有详细信息对象。

IsMustUnderstandFault

获取一个值,该值指示此错误是否是由于识别 SOAP 标头失败而造成的。

Node

获取该 SOAP 节点包含有关消息路径中哪个 SOAP 节点造成错误的信息。

Reason

获取 SOAP 错误的文本说明。

方法

CreateFault(FaultCode, FaultReason)

返回使用指定的 MessageFaultFaultCode 对象的新 FaultReason 对象。

CreateFault(FaultCode, FaultReason, Object)

返回使用指定的 MessageFaultFaultCode 和详细信息对象的新 FaultReason 对象。

CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer)

返回一个新 MessageFault 对象,该对象使用指定的 FaultCode、、 FaultReason详细信息对象和 XmlObjectSerializer 对象。

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

返回使用指定的 MessageFaultFaultCode、详细信息对象、FaultReason 和操作者的新 XmlObjectSerializer 对象。

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

返回使用指定的 MessageFaultFaultCode、详细信息对象、FaultReason、操作者和节点值的新 XmlObjectSerializer 对象。

CreateFault(FaultCode, String)

返回使用指定的 MessageFault 和错误原因的新 FaultCode 对象。

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 信封版本的消息错误。

适用于