4

众所周知,ASP.NET web api (ApiController) 通过 NewtonSoft.JSON 自动给出 JSON 响应。

我的三级1:MANY:1 EF 数据模型以多种方式进行查询,并且可以很好地将 [JsonIgnore] 属性应用于某些虚拟属性以消除引用循环问题。(我在这个(链接)答案中使用了第三种解决方案)

但我的问题是,我有时需要使用 json-ignored 属性来查询模型。

有什么方法可以在运行时控制[JsonIgnore]属性吗?或者,是否有任何方法可以在运行时切换 NewtonSoft.JSON 中要忽略的开关属性?

4

1 回答 1

2

我知道解决这个问题的两种方法:

  1. 您可以在模型中添加额外的布尔属性(具有特定名称)。这是解决方案非常简单,但需要更改您的模型。
  2. 你可以自己写IContractResolver。这种方法更复杂,但更灵活。

此处描述的两种解决方案:“条件属性序列化” http://james.newtonking.com/json/help/index.html?topic=html/ConditionalProperties.htm

于 2013-12-08T17:53:52.253 回答