编程语言
首页 > 编程语言> > 如何在C#中将自定义异常序列化为json

如何在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