在运行时期间在ASP.NET Web API中控制[JsonIgnore]

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

我的三级1:MANY:1 EF数据模型以多种方式查询,并且将[JsonIgnore]属性应用于某些虚拟属性以便消除参考循环问题,它可以正常工作.
(我在this(link)答案中使用第三种解决方案)

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

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

最佳答案 我知道解决这个问题的两种方法:

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

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

点赞