c# - xmlattribute - Ignorar un campo durante la serialización.NET JSON; similar a[XmlIgnore]?
xml serialization c# (4)
Tengo una clase POCO que se está enviando al navegador como una cadena JSON en .NET 3.5 sp1. Solo estoy usando la serialización JSON predeterminada y tengo algunos campos que deseo ignorar. Quiero poner un atributo similar a [System.Xml.Serialization.XmlIgnore] en ellos para que no se serialicen.
Establecer propiedad como interna. Depende de tu estructura, sin embargo. Tomar en consideración.
Solo necesita agregar [ScriptIgnore(ApplyToOverrides = true)]
en su archivo de plantilla de texto (.tt).
Aquí una parte de mi plantilla de texto antes
#>
<#=codeStringGenerator.NavigationProperty(navigationProperty)#>
<#
Una vez que codeStringGenerator
el código, la línea sobre el codeStringGenerator
mis clases se generaron automáticamente y se veía así:
[ScriptIgnore(ApplyToOverrides = true)]
public virtual ICollection<Currency> Currencies { get; set; }
También necesité modificar la función UsingDirectives
para insertar "using System.Web.Script.Serialization;"
Uso el atributo ScriptIgnore en mi modelo de esta manera:
public class Item
{
[ScriptIgnore]
public Item ParentItem { get; set; }
}
En este caso particular, recibí un error de referencia circular del serializador Json, por lo que simplemente lo ignoré. Estaba haciendo una pregunta similar aquí en SO cuando me enfocaron en la diferencia entre un modelo y un modelo de vista.
[ScriptIgnore]
es tu huckaberry