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 |
获取或设置操作者的值。 |
Code |
获取 SOAP 错误代码。 |
HasDetail |
获取一个值,该值指示 MessageFault 是否有详细信息对象。 |
IsMustUnderstandFault |
获取一个值,该值指示此错误是否是由于识别 SOAP 标头失败而造成的。 |
Node |
获取该 SOAP 节点包含有关消息路径中哪个 SOAP 节点造成错误的信息。 |
Reason |
获取 SOAP 错误的文本说明。 |