У меня есть служба WCF с поддержкой AJAX (с включенной функцией enableWebScript), которая имеет созданную мной ошибку ValidationFault.
Вот услуга:
[ServiceContract]
public interface ICoreWCF
{
/// <summary>
/// Saves the Customer.
/// </summary>
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.WrappedRequest)]
[FaultContract(typeof(ValidationFault))]
void Customer_Save(Customer customer);
}
Вот вина:
[DataContract]
public class ValidationFault
{
[DataMember(Name = "success")]
public bool Success { get; set; }
[DataMember(Name = "msg")]
public string ValidationMessage { get; set; }
[DataMember(Name = "errors")]
public Dictionary<string, string> Errors { get; set; }
}
Я хотел бы отправить эту ошибку обратно клиентскому javascript.
Проблема в том, что DataMembers моей пользовательской ошибки игнорируются, и возвращается общее исключение.
Как отправить клиенту коллекцию ошибок?
Я уже пытался написать свой собственный IErrorHandler , аналогичный this , так что он использует блок приложения обработки исключений для преобразования исключения в ошибку, а затем IErrorHandler сериализует возникающую ошибку , Но похоже, что JsonErrorHandler из WebScriptingEnablingBehavior плохо справляется с результирующим объектом Message.
Спасибо.