Поделиться через


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

В этом примере метод преобразует все объекты в MessageFault объект, ProvideFault содержащий FaultException<TDetail> объект типа GreetingFault , и возвращает объект, настроенный MessageFault для WCF.Exception

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

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

CreateFault(FaultCode, FaultReason, Object)

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

CreateFault(FaultCode, FaultReason, Object, XmlObjectSerializer)

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

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

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

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

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

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