MessageFault 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示 SOAP 错误在内存中的表示形式,该错误可以传递到 CreateMessage 以创建包含错误的消息。
public ref class MessageFault abstractpublic abstract class MessageFaulttype MessageFault = classPublic 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 | 获取或设置操作者的值。 | 
| Code | 获取 SOAP 错误代码。 | 
| HasDetail | 获取一个值,该值指示 MessageFault 是否有详细信息对象。 | 
| IsMustUnderstandFault | 获取一个值,该值指示此错误是否是由于识别 SOAP 标头失败而造成的。 | 
| Node | 获取该 SOAP 节点包含有关消息路径中哪个 SOAP 节点造成错误的信息。 | 
| Reason | 获取 SOAP 错误的文本说明。 |