我有一个POCO类,它作为.NET 3.5 sp1中的JSON字符串发送到浏览器。我只是使用默认的JSON序列化,我有一些我想忽略的字段。我想在它们上面添加类似于[System.Xml.Serialization.XmlIgnore]的属性,以便它们不被序列化。
答案 0 :(得分:118)
我在模型上使用ScriptIgnore属性,如下所示:
public class Item
{
[ScriptIgnore]
public Item ParentItem { get; set; }
}
在这种特殊情况下,我从Json序列化程序中得到一个循环引用错误,所以我只是忽略它。当我转向模型和ViewModel之间的差异时,我asking a similar question here on SO。
答案 1 :(得分:26)
[ScriptIgnore]
是你的huckaberry。
答案 2 :(得分:2)
你只需要添加
[ScriptIgnore(ApplyToOverrides = true)]
到您的文字模板(.tt)文件中。
这是
之前我文本模板的一部分#>
<#=codeStringGenerator.NavigationProperty(navigationProperty)#>
<#
一旦我将代码插入自动生成的codeStringGenerator
我的类之上的行,看起来像这样:
[ScriptIgnore(ApplyToOverrides = true)]
public virtual ICollection<Currency> Currencies { get; set; }
我还需要修改UsingDirectives
函数以插入"using System.Web.Script.Serialization;"