Ignoring a field during .NET JSON serialization; similar to [XmlIgnore]?

后端 未结 4 721
鱼传尺愫
鱼传尺愫 2020-11-30 05:38

I have a POCO class that is being sent to the browser as a JSON string in .NET 3.5 sp1. I am just using the default JSON serialization and I have some fields that I want to

相关标签:
4条回答
  • 2020-11-30 05:41
    [ScriptIgnore] 
    

    is your huckaberry.

    0 讨论(0)
  • 2020-11-30 05:50

    You just need to add the [ScriptIgnore(ApplyToOverrides = true)] into your text template (.tt) file.

    Here a portion of my text template before

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

    Once I inserted the code the line above the codeStringGenerator my classes auto generated and looked like this:

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

    I also needed to modify the UsingDirectives function to insert "using System.Web.Script.Serialization;"

    0 讨论(0)
  • 2020-11-30 06:00

    I use the ScriptIgnore attribute on my model like so:

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

    In this particular scenario I was getting a circular reference error from the Json serializer, so I simply ignored it. I was asking a similar question here on SO when I was turned on to the difference between a Model and ViewModel.

    0 讨论(0)
  • 2020-11-30 06:00

    Set property as internal. Depends on your structure, though. Take into consideration.

    0 讨论(0)
提交回复
热议问题