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 エラー メッセージの処理が必要な場所であればどこでも使用できます。

コンストラクター

名前 説明
MessageFault()

派生クラスで呼び出されると、 MessageFault クラスの新しいインスタンスを初期化します。

プロパティ

名前 説明
Actor

アクターの値を取得または設定します。

Code

SOAP エラー コードを取得します。

HasDetail

MessageFaultに詳細オブジェクトがあるかどうかを示す値を取得します。

IsMustUnderstandFault

このエラーが SOAP ヘッダーの理解に失敗したために発生したかどうかを示す値を取得します。

Node

エラーの原因となるメッセージ パス上の SOAP ノードに関する情報を含む SOAP ノードを取得します。

Reason

SOAP エラーの説明テキストを取得します。

メソッド

名前 説明
CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer, String, String)

指定したMessageFaultFaultCode、詳細オブジェクト、FaultReason、アクター、ノードの値を使用する新しいXmlObjectSerializer オブジェクトを返します。

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

指定したMessageFaultFaultCode、詳細オブジェクト、FaultReason、アクターを使用する新しいXmlObjectSerializer オブジェクトを返します。

CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer)

指定したMessageFaultFaultCode、詳細オブジェクト、およびFaultReason オブジェクトを使用する新しいXmlObjectSerializer オブジェクトを返します。

CreateFault(FaultCode, FaultReason, Object)

指定したMessageFaultFaultCode、および詳細オブジェクトを使用する新しいFaultReason オブジェクトを返します。

CreateFault(FaultCode, FaultReason)

指定したMessageFaultオブジェクトとFaultCode オブジェクトを使用する新しいFaultReason オブジェクトを返します。

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 エンベロープ バージョンを使用するメッセージ エラーを書き込みます。

適用対象