Teilen über


MessageFault Klasse

Definition

Stellt eine speicherinterne Darstellung eines SOAP-Fehlers dar, die an CreateMessage weitergegeben werden kann, um eine Nachricht zu erstellen, die einen Fehler enthält.

public ref class MessageFault abstract
public abstract class MessageFault
type MessageFault = class
Public MustInherit Class MessageFault
Vererbung
MessageFault

Beispiele

Das folgende Codebeispiel veranschaulicht die übliche Verwendung von MessageFault. Sowohl ProvideFault als auch HandleError geben in ein MessageFault-Objekt weiter, das geändert und an das System zurückgegeben (bei ProvideFault) oder zur Durchführung von benutzerdefiniertem fehlerbezogenen Verhalten verwendet werden kann (bei HandleError).

In diesem Beispiel konvertiert die ProvideFault -Methode alle Exception -Objekte in ein MessageFault -Objekt, das ein FaultException<TDetail> Objekt vom Typ GreetingFault enthält, und gibt das an WCF angepasste MessageFault zurück.

#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

Hinweise

Verwenden Sie die MessageFault-Klasse immer, wenn Sie einen speicherinternen SOAP-Fehler benötigen, der geändert und für die Erstellung einer SOAP-Nachricht, die die Fehlerinformationen enthält, verwendet werden kann.

In der Regel wird die MessageFault-Klasse bei der Implementierung der IErrorHandler-Schnittstelle verwendet. In diesem Fall übergibt Windows Communication Foundation (WCF) das MessageFault Objekt, und Sie verwenden es für Ihre spezifischen Anforderungen (z. B. können Sie die MessageFault Fehlerinformationen anpassen oder protokollieren). Die MessageFault kann jedoch immer dann verwendet werden, wenn eine benutzerdefinierte Handhabung von SOAP-Fehlermeldungen erforderlich ist.

Konstruktoren

MessageFault()

Initialisiert beim Aufruf in einer abgeleiteten Klasse eine neue Instanz der MessageFault-Klasse.

Eigenschaften

Actor

Ruft den Wert des Darstellers ab oder legt diesen fest.

Code

Ruft den SOAP-Fehlercode ab.

HasDetail

Ruft einen Wert ab, der angibt, ob MessageFault über ein Detailobjekt verfügt.

IsMustUnderstandFault

Ruft einen Wert ab, der angibt, ob dieser Fehler vom Misserfolg verursacht wurde, einen SOAP-Header zu verstehen.

Node

Ruft den SOAP-Knoten ab, der Informationen darüber enthält, welcher SOAP-Knoten auf einem Nachrichtenpfad den Fehler enthält.

Reason

Ruft eine Textbeschreibung eines SOAP-Fehlers ab.

Methoden

CreateFault(FaultCode, FaultReason)

Gibt ein neues MessageFault-Objekt zurück, das die festgelegten Objekte FaultCode und FaultReason verwendet.

CreateFault(FaultCode, FaultReason, Object)

Gibt ein neues MessageFault-Objekt zurück, das den festgelegten FaultCode, FaultReason und das Detailobjekt verwendet.

CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer)

Gibt ein neues MessageFault -Objekt zurück, das die angegebenen FaultCodeObjekte , , FaultReasondetail -Objekte und XmlObjectSerializer -Objekte verwendet.

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

Gibt ein neues MessageFault-Objekt zurück, das den festgelegten FaultCode, den FaultReason, das Detailobjekt, den XmlObjectSerializer und den Darsteller verwendet.

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

Gibt ein neues MessageFault-Objekt zurück, das den festgelegten FaultCode, den FaultReason, das Detailobjekt, den XmlObjectSerializer, den Darsteller und die Knotenwerte verwendet.

CreateFault(FaultCode, String)

Gibt ein neues MessageFault-Objekt zurück, das den festgelegten FaultCode und den Fehlergrund verwendet.

CreateFault(Message, Int32)

Gibt ein neues MessageFault-Objekt zurück, das die festgelegte Message und die festgelegte maximale Puffergröße für den Nachrichtenpuffer verwendet.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetDetail<T>()

Gibt das Detailobjekt des Nachrichtenfehlers zurück.

GetDetail<T>(XmlObjectSerializer)

Gibt das Detailobjekt zurück, das den festgelegten XmlObjectSerializer verwendet.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetReaderAtDetailContents()

Gibt ein XmlDictionaryReader-Objekt zurück, das sich auf dem Detailobjekt des MessageFault befindet.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnGetReaderAtDetailContents()

Gibt bei Aufruf in einer abgeleiteten Klasse ein XmlDictionaryReader-Objekt zurück, das sich auf dem Detailobjekt des MessageFault befindet.

OnWriteDetail(XmlDictionaryWriter, EnvelopeVersion)

Wird vor dem Schreiben der Detailinhalte aufgerufen.

OnWriteDetailContents(XmlDictionaryWriter)

Schreibt bei Überschreibung in einer nicht abstrakten abgeleiteten Klasse die Inhalte des Detailelements.

OnWriteStartDetail(XmlDictionaryWriter, EnvelopeVersion)

Schreibt das Startelement mithilfe des festgelegten XmlDictionaryWriter und der SOAP-Umschlagsversion.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
WasHeaderNotUnderstood(MessageHeaders, String, String)

Ruft einen Wert ab, der angibt, ob die SOAP-Nachrichtenheader verstanden wurden.

WriteTo(XmlDictionaryWriter, EnvelopeVersion)

Schreibt den Meldungsfehler, der den festgelegten XmlDictionaryWriter und die SOAP-Umschlagsversion verwendet.

WriteTo(XmlWriter, EnvelopeVersion)

Schreibt den Meldungsfehler, der den festgelegten XmlWriter und die SOAP-Umschlagsversion verwendet.

Gilt für: