在某些继承的属性上使用JsonIgnore

时间:2016-05-31 12:21:24

标签: c# serialization json.net jsonresult

我有一个像这样的基类:

public class Baseclass
{
   public string Id { get; set; }
   public string Type { get; set; }
   public string Name { get; set; }
}

...以及许多继承这些属性的类,例如this-ish:

   public class Thing: Baseclass
    {
     public string Size{ get; set; }
     public string Color{ get; set; }
     public string Smell{ get; set; }
    }

现在,我不想序列化所有这些属性(mvc / jsonresult),所以我在我想要排除的类的属性上使用[JsonIgnore],并且工作正常。问题是我不想序列化类的所有继承属性。我问了一下并得到了以下答案:

Ex:我不想在Thing中从Baseclass序列化继承的Id。

我应该在Baseclass virutal中创建Id:

public virtual string Id { get; set; }

并将以下内容添加到Thing类:

[JsonIgnore]
public override string Id { get; set; }

...但这不起作用,我害怕。我可以绕过它来重建类层次结构。但我更喜欢更简单的解决方案。关于为什么这个解决方案不起作用的任何建议或排除某些继承属性的替代方法?

1 个答案:

答案 0 :(得分:-1)

我想最好的答案就在这里

随意选择更适合您的

https://stackoverflow.com/a/35024807/824323