Ignorar un campo durante la serialización .NET JSON; similar a ?

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.

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

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 Currencies { get; set; } 

También necesité modificar la función UsingDirectives para insertar "using System.Web.Script.Serialization;"

Establecer propiedad como interna. Depende de tu estructura, sin embargo. Tomar en consideración.