.NET 3.5sp1でJSON文字列としてブラウザに送信されているPOCOクラスがあります。デフォルトのJSONシリアル化を使用しているだけで、無視したいフィールドがいくつかあります。[System.Xml.Serialization.XmlIgnore]に似た属性を付けて、シリアル化されないようにします。
.NET 3.5sp1でJSON文字列としてブラウザに送信されているPOCOクラスがあります。デフォルトのJSONシリアル化を使用しているだけで、無視したいフィールドがいくつかあります。[System.Xml.Serialization.XmlIgnore]に似た属性を付けて、シリアル化されないようにします。
回答:
モデルでScriptIgnore属性を次のように使用します。
public class Item
{
[ScriptIgnore]
public Item ParentItem { get; set; }
}
この特定のシナリオでは、Jsonシリアライザーから循環参照エラーが発生していたため、単に無視しました。私がされたSO上でここに同様の質問をして私はモデルとビューモデルとの差に投入されたとき。
[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;"
ApplyToOverrides
仮想プロパティでは非常に重要なようです