次の方法で共有


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オブジェクトを 型GreetingFaultの オブジェクトをMessageFault含む FaultException<TDetail> オブジェクトに変換し、WCF にカスタマイズした MessageFault を返します。

#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)

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

CreateFault(FaultCode, FaultReason, Object)

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

CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer)

指定した FaultReasonFaultCode、、詳細オブジェクト、および オブジェクトを使用する新しいMessageFaultオブジェクトを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 エンベロープのバージョンを使用するメッセージ エラーを書き込みます。

適用対象