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