代码之家  ›  专栏  ›  技术社区  ›  fehays

如何在c中将自定义异常序列化为json#

  •  3
  • fehays  · 技术社区  · 15 年前

    我使用jqueryajax调用了一个c#web服务。它工作正常,除非在web方法中抛出自定义异常。出于某种原因,XmlHttpResponse对象responseText只具有基异常类的属性。因此,我最终得到一个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>();
        }
    }
    

    我的目标是在json响应中显示“FieldErrors”属性。

    1 回复  |  直到 15 年前
        1
  •  3
  •   eglasius    15 年前

    别这样。你不应该暴露你的asp.net地点。

    即使它最终对用户隐藏,您仍然会将它及其所有详细信息发送给客户端。

    在这种情况下,您实际上想要控制将要发送的内容,因此显式发送字段错误列表而不发送整个异常实例的json版本是您应该做的。