Condividi tramite


MessageFault Classe

Definizione

Rappresenta una rappresentazione in memoria di un errore SOAP che può essere passato a CreateMessage per creare un messaggio che contiene un errore.

public ref class MessageFault abstract
public abstract class MessageFault
type MessageFault = class
Public MustInherit Class MessageFault
Ereditarietà
MessageFault

Esempio

Nell'esempio di codice seguente viene illustrato l'utilizzo più comune di MessageFault. ProvideFault e HandleError passano un oggetto MessageFault che può essere modificato e restituito al sistema (nel caso di ProvideFault) o utilizzato per ottenere un comportamento personalizzato correlato all'errore (nel caso di HandleError).

In questo esempio il ProvideFault metodo converte tutti gli Exception oggetti in un MessageFault oggetto contenente un FaultException<TDetail> oggetto di tipo GreetingFault e restituisce tale oggetto personalizzato MessageFault in 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

Commenti

Utilizzare la classe MessageFault ogni volta che si desidera modificare e utilizzare un errore SOAP in memoria per creare un messaggio SOAP contenente informazioni sull'errore.

In genere, la classe MessageFault viene utilizzata per implementare l'interfaccia IErrorHandler. In questo caso, Windows Communication Foundation (WCF) passa l'oggetto MessageFault e lo si usa per le esigenze specifiche( ad esempio, è possibile personalizzare o MessageFault registrare le informazioni sugli errori). MessageFault può essere tuttavia utilizzato ovunque sia necessario gestire messaggi di errore SOAP personalizzati.

Costruttori

MessageFault()

Quando viene chiamato in una classe derivata, inizializza una nuova istanza della classe MessageFault.

Proprietà

Actor

Ottiene o imposta il valore dell'attore.

Code

Ottiene il codice dell'errore SOAP.

HasDetail

Ottiene un valore che indica se MessageFault ha un oggetto del dettaglio.

IsMustUnderstandFault

Ottiene un valore che indica se questo errore è stato causato dalla mancata comprensione di un'intestazione SOAP.

Node

Ottiene il nodo SOAP contenente informazioni sul nodo SOAP in un percorso del messaggio che provoca l'errore.

Reason

Ottiene una descrizione testuale di un errore SOAP.

Metodi

CreateFault(FaultCode, FaultReason)

Restituisce un nuovo oggetto MessageFault che utilizza gli oggetti FaultCode e FaultReason specificati.

CreateFault(FaultCode, FaultReason, Object)

Restituisce un nuovo oggetto MessageFault che utilizza gli oggetti FaultCode e FaultReason specificati e l'oggetto del dettaglio.

CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer)

Restituisce un nuovo MessageFault oggetto che usa l'oggetto XmlObjectSerializer , , FaultReason, e gli oggetti specificatiFaultCode.

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

Restituisce un nuovo oggetto MessageFault che utilizza gli oggetti specificati FaultCode, FaultReason, l'oggetto del dettaglio, XmlObjectSerializer e l'attore.

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

Restituisce un nuovo oggetto MessageFault che utilizza gli oggetti specificati FaultCode, FaultReason, l'oggetto del dettaglio, XmlObjectSerializer, l'attore e i valori del nodo.

CreateFault(FaultCode, String)

Restituisce un nuovo oggetto MessageFault che utilizza il FaultCode specificato e il motivo dell'errore.

CreateFault(Message, Int32)

Restituisce un nuovo oggetto MessageFault che utilizza Message specificato e le dimensioni massime specificate per il buffer dei messaggi.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetDetail<T>()

Restituisce l'oggetto del dettaglio dell'errore del messaggio.

GetDetail<T>(XmlObjectSerializer)

Restituisce l'oggetto del dettaglio che utilizza XmlObjectSerializer specificato.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetReaderAtDetailContents()

Restituisce un oggetto XmlDictionaryReader posizionato nell'oggetto del dettaglio di MessageFault.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnGetReaderAtDetailContents()

Quando viene chiamato in una classe derivata, restituisce un oggetto XmlDictionaryReader posizionato nell'oggetto del dettaglio di MessageFault.

OnWriteDetail(XmlDictionaryWriter, EnvelopeVersion)

Richiamato prima di scrivere il contenuto del dettaglio.

OnWriteDetailContents(XmlDictionaryWriter)

Quando viene sottoposto a override in una classe derivata non astratta, scrive il contenuto dell'elemento dettaglio.

OnWriteStartDetail(XmlDictionaryWriter, EnvelopeVersion)

Scrive l'elemento iniziale utilizzando XmlDictionaryWriter specificato e la versione della SOAP envelope.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
WasHeaderNotUnderstood(MessageHeaders, String, String)

Ottiene un valore che indica se le intestazioni del messaggio SOAP sono state comprese.

WriteTo(XmlDictionaryWriter, EnvelopeVersion)

Scrive l'errore del messaggio che utilizza XmlDictionaryWriter specificato e la versione della SOAP envelope.

WriteTo(XmlWriter, EnvelopeVersion)

Scrive l'errore del messaggio che utilizza XmlWriter specificato e la versione della SOAP envelope.

Si applica a