4

ご存知のとおり、ASP.NET Web API(ApiController)は、NewtonSoft.JSONを介してJSON応答を自動的に提供します。

私の3レベルの1:MANY:1 EFデータモデルはいくつかの方法でクエリされ、参照循環の問題を排除するために[JsonIgnore]属性をいくつかの仮想プロパティに適用すると正常に機能します。(私はこの(リンク)回答で3番目の解決策を使用します)

しかし、私の問題は、モデルでクエリを実行するためにjsonを無視したプロパティを使用する必要がある場合があることです。

実行時に[JsonIgnore]属性を制御する方法はありますか?または、実行時にNewtonSoft.JSONで無視されるオンとオフのプロパティを切り替える方法はありますか?

4

1 に答える 1

2

私はこの問題を解決する2つの方法を知っています:

  1. モデルにブールプロパティ(特定の名前)を追加できます。これは非常に単純な解決策ですが、モデルを変更する必要があります。
  2. あなたは自分自身を書くことができますIContractResolver。この方法はより複雑ですが、より柔軟です。

ここで説明する両方のソリューション:'条件付きプロパティのシリアル化' http://james.newtonking.com/json/help/index.html?topic=html/ConditionalProperties.htm

于 2013-12-08T17:53:52.253 に答える