.NET 3.5 sp1でJSON文字列としてブラウザに送信されるPOCOクラスがあります。デフォルトのJSONシリアル化を使用していますが、無視したいフィールドがいくつかあります。それらに[System.Xml.Serialization.XmlIgnore]のような属性を付けて、それらがシリアル化されないようにします。
モデルでは ScriptIgnore 属性を次のように使用します。
public class Item
{
[ScriptIgnore]
public Item ParentItem { get; set; }
}
この特定のシナリオでは、Jsonシリアライザーから循環参照エラーが発生していたため、単に無視しました。私は SOで同様の質問をする で、ModelとViewModelの違いに気づいたときでした。
[ScriptIgnore]
あなたのハッカベリーです。
[ScriptIgnore(ApplyToOverrides = true)]
をテキストテンプレート(.tt)ファイルに追加するだけです。
ここに私のテキストテンプレートの一部
#>
<#=codeStringGenerator.NavigationProperty(navigationProperty)#>
<#
コードを挿入すると、codeStringGenerator
の上の行が自動生成され、次のようになります。
[ScriptIgnore(ApplyToOverrides = true)]
public virtual ICollection<Currency> Currencies { get; set; }
UsingDirectives
関数を変更して"using System.Web.Script.Serialization;"
を挿入する必要もありました。
プロパティを内部として設定します。ただし、構造によって異なります。考慮に入れる。