c# - 序列化并忽略抛出异常的属性

标签 c# json asp.net-mvc

假设我有一个类:

public class Cat
{
    public int Hunger {get; set;}
    public int Sleepiness {get; set;}
    public int Usefullness {
      get { throw new DivideByZeroException(); }
    }
}

是否可以序列化如下:

public ActionResult GetMyCat()
{
     Cat c = new Cat()
    {
        Hunger = 10,
        Sleepiness = 10
    };

    return Json(c);
}

我无法修改“Cat”类。我能否让 MVC JSON Serializer 忽略一个属性抛出的错误(如果它抛出错误)并只给我该属性的空值/默认值?

最佳答案

创建将返回正确对象的类扩展

public static class CatExtensions
 {
        public static object GetObject(this Cat value)
        {
            return new
            {
                Hunger = value.Hunger,
                Sleepiness = value.Sleepiness
            }
        }
    }

关于c# - 序列化并忽略抛出异常的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32948998/

相关文章:

c# - 单击按钮时在文本框中显示结果 (ASP.Net)

C# DDD 填充不可变对象(immutable对象)

c# - 在 .NET Request.Form 的 POST 请求正文中设置测试信息

asp.net-mvc - VS 2013 MVC 5 区域 View 中的 HtmlHelpers 没有智能感知

c# - Asp.net MVC ViewEngineResult + 嵌入式 View

c# - 数据绑定(bind)下拉列表

c# - 标签中未显示 Unicode 特殊字符

mysql - 从json数据创建mysql数据库

ios - 如何从 json 字典自动创建模型类(NSObject)?

java - Dropwizard : Exception Handling, 向客户端提供自定义错误 JSON 错误消息