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