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