【发布时间】:2011-10-12 01:00:50
【问题描述】:
我有一个启用 AJAX 的 WCF 服务(在行为中带有 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 序列化生成的故障。但似乎 WebScriptingEnablingBehavior 的 JsonErrorHandler 并不能很好地处理生成的 Message 对象。
谢谢。
【问题讨论】:
-
看看 [这里][1] 已经回答了。 [1]:stackoverflow.com/questions/1272877/…
-
谢谢@Bryan。我看到了这个问题,但不幸的是,我遇到了与此答案所述相同的问题:stackoverflow.com/questions/1272877/…
标签: ajax wcf json exception-handling