如何在C#中将自定义异常序列化为json
作者:互联网
我有一个使用jquery ajax调用的c#Web服务.它工作正常,除非在Web方法内引发了自定义异常.由于某些原因,XmlHttpResponse对象responseText仅具有基本Exception类的属性.因此,我最终得到了一个具有以下属性的json对象:“ ExceptionType”,“ Message”和“ StackTrace”
我的自定义异常具有一个名为“ FieldErrors”的属性,该属性不会在返回中显示.这是该类的代码:
[Serializable]
[XmlRootAttribute(Namespace = "http://www.mydomain.com/", IsNullable = false)]
public class ValidationException : Exception
{
public List<string> FieldErrors { get; set; }
public ValidationException(string message = null, Exception innerException = null) : base(message: message, innerException: innerException)
{
this.FieldErrors = new List<string>();
}
}
我的目标是获取“ FieldErrors”属性以显示在json响应中.
解决方法:
不要这样您绝对不应公开来自asp.net网站的异常.
即使最终对用户隐藏了它,您仍然会将其所有详细信息发送给客户端.
在这种情况下,您实际上要控制将要发送的内容,因此无论如何都应显式发送字段错误列表而不发送整个异常实例的json版本.
标签:serialization,asmx,json,c,jquery 来源: https://codeday.me/bug/20191209/2096547.html