MessageFault クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
エラーを含むメッセージを作成するために CreateMessage に渡すことができる SOAP エラーのメモリ内表現を表します。
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 エラーの説明テキストを取得します。 |