MessageFault Класс

Определение

Представляет представление в памяти ошибки SOAP, которую можно передать в CreateMessage для создания сообщения, содержащего ошибку.

public ref class MessageFault abstract
public abstract class MessageFault
type MessageFault = class
Public MustInherit Class MessageFault
Наследование
MessageFault

Примеры

В следующем примере кода показано наиболее частое использование MessageFault. И ProvideFault, и HandleError передавать объект 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

Комментарии

Используйте класс MessageFault в любое время, когда требуется ошибка SOAP в памяти, которую можно изменить и использовать для создания сообщения SOAP, содержащего сведения об ошибке.

Как правило, класс 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)

Возвращает новый объект MessageFault, использующий указанные FaultCode, FaultReason, подробный объект, XmlObjectSerializer, значения субъекта и узла.

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

Возвращает новый объект MessageFault, использующий указанные FaultCode, FaultReason, объект детализации, XmlObjectSerializerи субъект.

CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer)

Возвращает новый объект MessageFault, использующий указанные FaultCode, FaultReason, объект детализации и объекты XmlObjectSerializer.

CreateFault(FaultCode, FaultReason, Object)

Возвращает новый объект MessageFault, использующий указанный FaultCode, 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.

Применяется к