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