Udostępnij za pośrednictwem


MessageFault Klasa

Definicja

Reprezentuje reprezentację w pamięci błędu protokołu SOAP, który można przekazać do CreateMessage w celu utworzenia komunikatu zawierającego błąd.

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

Przykłady

Poniższy przykład kodu przedstawia najbardziej typowe użycie MessageFault. Zarówno ProvideFault, jak i HandleError przekazać obiekt MessageFault, który można zmodyfikować i powrócić do systemu (w przypadku ProvideFault) lub użyć do wykonania niestandardowego zachowania związanego z błędami (w przypadku HandleError).

W tym przykładzie metoda ProvideFault konwertuje wszystkie obiekty Exception na obiekt MessageFault zawierający obiekt FaultException<TDetail> typu GreetingFault i zwraca dostosowany MessageFault do usługi 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

Uwagi

Użyj klasy MessageFault w dowolnym momencie, gdy potrzebujesz błędu protokołu SOAP w pamięci, który można zmodyfikować i użyć do utworzenia komunikatu PROTOKOŁU SOAP zawierającego informacje o błędzie.

Zazwyczaj klasa MessageFault jest używana podczas implementowania interfejsu IErrorHandler. W takim przypadku program Windows Communication Foundation (WCF) przekazuje obiekt MessageFault i używa go do określonych potrzeb (na przykład można dostosować MessageFault lub rejestrować informacje o błędach). Jednak MessageFault można używać wszędzie tam, gdzie wymagana jest niestandardowa obsługa komunikatów o błędach protokołu SOAP.

Konstruktory

MessageFault()

Po wywołaniu w klasie pochodnej inicjuje nowe wystąpienie klasy MessageFault.

Właściwości

Actor

Pobiera lub ustawia wartość aktora.

Code

Pobiera kod błędu protokołu SOAP.

HasDetail

Pobiera wartość wskazującą, czy MessageFault ma obiekt szczegółów.

IsMustUnderstandFault

Pobiera wartość wskazującą, czy ten błąd został spowodowany przez błąd zrozumienia nagłówka protokołu SOAP.

Node

Pobiera węzeł SOAP zawierający informacje o tym, który węzeł SOAP w ścieżce komunikatu powoduje błąd.

Reason

Pobiera tekstowy opis błędu protokołu SOAP.

Metody

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

Zwraca nowy obiekt MessageFault, który używa określonych wartości FaultCode, FaultReason, obiektu szczegółów, XmlObjectSerializer, aktora i węzła.

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

Zwraca nowy obiekt MessageFault, który używa określonego obiektu FaultCode, FaultReason, obiektu szczegółów, XmlObjectSerializeri aktora.

CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer)

Zwraca nowy obiekt MessageFault, który używa określonego obiektu FaultCode, FaultReason, obiektu szczegółów i obiektów XmlObjectSerializer.

CreateFault(FaultCode, FaultReason, Object)

Zwraca nowy obiekt MessageFault, który używa określonego obiektu FaultCode, FaultReasoni szczegółów.

CreateFault(FaultCode, FaultReason)

Zwraca nowy obiekt MessageFault, który używa określonych obiektów FaultCode i FaultReason.

CreateFault(FaultCode, String)

Zwraca nowy obiekt MessageFault, który używa określonego FaultCode i przyczyny błędu.

CreateFault(Message, Int32)

Zwraca nowy obiekt MessageFault, który używa określonego Message i określonego maksymalnego rozmiaru buforu dla buforu komunikatów.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
GetDetail<T>()

Zwraca obiekt szczegółów błędu komunikatu.

GetDetail<T>(XmlObjectSerializer)

Zwraca obiekt szczegółów, który używa określonego XmlObjectSerializer.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetReaderAtDetailContents()

Zwraca obiekt XmlDictionaryReader umieszczony na obiekcie szczegółów MessageFault.

GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
OnGetReaderAtDetailContents()

Po wywołaniu w klasie pochodnej zwraca obiekt XmlDictionaryReader umieszczony na obiekcie szczegółów MessageFault.

OnWriteDetail(XmlDictionaryWriter, EnvelopeVersion)

Wywoływane przed zapisaniem zawartości szczegółów.

OnWriteDetailContents(XmlDictionaryWriter)

Po przesłonięciu w klasie pochodnej innej niż abstrakcyjna zapisuje zawartość elementu detail.

OnWriteStartDetail(XmlDictionaryWriter, EnvelopeVersion)

Zapisuje element startowy przy użyciu określonej wersji XmlDictionaryWriter i koperty PROTOKOŁU SOAP.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
WasHeaderNotUnderstood(MessageHeaders, String, String)

Pobiera wartość wskazującą, czy nagłówki komunikatów PROTOKOŁU SOAP zostały zrozumiane.

WriteTo(XmlDictionaryWriter, EnvelopeVersion)

Zapisuje błąd komunikatu, który używa określonej wersji XmlDictionaryWriter i koperty protokołu SOAP.

WriteTo(XmlWriter, EnvelopeVersion)

Zapisuje błąd komunikatu, który używa określonej wersji XmlWriter i koperty protokołu SOAP.

Dotyczy