首页 文章

在.NET JSON序列化期间忽略字段;类似于[XmlIgnore]?

提问于
浏览
78

我有一个POCO类,它作为.NET 3.5 sp1中的JSON字符串发送到浏览器 . 我只是使用默认的JSON序列化,我有一些我想忽略的字段 . 我想在它们上面添加类似于[System.Xml.Serialization.XmlIgnore]的属性,以便它们不被序列化 .

4 回答

  • 118

    我在我的模型上使用ScriptIgnore属性,如下所示:

    public class Item
    {
        [ScriptIgnore]
        public Item ParentItem { get; set; }
    }
    

    在这个特殊情况下,我从Json序列化程序中得到一个循环引用错误,所以我只是忽略它 . 当我接触到Model和ViewModel之间的区别时,我就是asking a similar question here on SO .

  • 2
    [ScriptIgnore]
    

    是你的huckaberry .

  • 26

    您只需将 [ScriptIgnore(ApplyToOverrides = true)] 添加到文本模板(.tt)文件中即可 .

    这是我之前的一部分文本模板

    #>
    <#=codeStringGenerator.NavigationProperty(navigationProperty)#>
    <#
    

    一旦我插入代码,我自动生成的 codeStringGenerator 上面的行就像这样:

    [ScriptIgnore(ApplyToOverrides = true)]
    public virtual ICollection<Currency> Currencies { get; set; }
    

    我还需要修改 UsingDirectives 函数来插入 "using System.Web.Script.Serialization;"

  • 1

    将 property 设为内部 . 但是取决于你的结构 . 考虑一下 .

相关问题