[Serializable]
public class ModelResource:ISerializable
{
public Int64 Ore { get; private set; }
public Int64 Crystal { get; private set; }
public Int64 Hydrogen { get; private set; }
//needs to be ignored
public Int64 Total { get { return Ore + Hydrogen + Crystal; } }
public string ResourceType { get; private set; }
public Int64 HerculesNeeded { get { return Total/25000; } }
public Int64 AtlasNeeded { get { return Total/5000; } }
public bool IsPlanet { get { return ResourceType == "Planet"; } }
//causes serializer to stackoverflow
public ModelResource MakeChild {get{return new ModelResource(Ore/2,Crystal/2,Hydrogen/2);}}
public string ToJson()
{
var jss = new System.Web.Script.Serialization.JavaScriptSerializer(new SimpleTypeResolver());
return jss.Serialize(this); //throws recursion limit exceed exception
}
#region ISerializable Members
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("Ore", Ore);
info.AddValue("Crystal", Crystal);
info.AddValue("Hydrogen", Hydrogen);
info.AddValue("ResourceType", ResourceType);
}
private ModelResource(SerializationInfo si, StreamingContext context)
{
Ore = si.GetInt64("Ore");
Crystal = si.GetInt64("Crystal");
Hydrogen = si.GetInt64("Hydrogen");
ResourceType = si.GetString("ResourceType");
}
#endregion
}
10
A
Respuesta
14
Normalmente yo sugeriría diciendo que hacer caso omiso de las propiedades de los padres (que crean ciclos) - en este caso mediante la adición de [ScriptIgnore]
- pero no puedo ver aparte de los miembros básicos nada - es esta clase por sí mismo lo suficiente como para provocar el error ?
Cuestiones relacionadas
- 1. Ignorar una propiedad mientras se usa jquery $ .extend()?
- 2. Ignorar la serialización binaria en una propiedad
- 3. ¿Cómo se obtiene un resumen de diff de Subversion para ignorar las propiedades de mergeinfo?
- 4. ¿cómo hacer que NHibernate ignorar una propiedad en un POCO
- 5. ¿Cómo puede ServiceStack.OrmLite ignorar una propiedad por el atributo
- 6. Mongo - Ignorar la propiedad de la persistencia
- 7. Objective-C obtiene una propiedad de clase de la cadena
- 8. ¿Cómo se obtiene el historial de una propiedad de archivo/carpeta en SVN?
- 9. ¿Cómo se obtiene un # nombre de la propiedad C como una cadena con la reflexión?
- 10. svn: ignorar propiedad durante la importación
- 11. ¿Obtiene el valor de una propiedad personalizada con atributo decorado?
- 12. Controlador MongoDB C#: Ignorar Propiedad en Insertar
- 13. Obtiene propiedad de clase PHP por cadena
- 14. ¿Cómo se obtiene un objeto System.Web.HttpWebRequest para usar SSL 2.0?
- 15. Obtiene una propiedad de objeto PHP que es un número
- 16. C# Automapper Ignorar propiedad cuando nulo
- 17. ¿Cómo puedo ignorar una superclase?
- 18. ¿Cómo se obtiene el control que se hizo clic para abrir un ContextMenuStrip?
- 19. ¿Cómo se obtiene una lista de directorio en C?
- 20. ¿Cómo se obtiene el selenio para reconocer que se cargó una página?
- 21. ¿Cómo se obtiene Cloud9 IDE para ejecutar en segundo plano?
- 22. ¿Cómo se obtiene SQL para reconocer WHERE column = NULL?
- 23. ¿Cómo se obtiene un rango para devolver su nombre?
- 24. ¿Cómo se obtiene * ant * para no imprimir advertencias javac?
- 25. ¿Cómo se obtiene pepino/protector para filtrar etiquetas como @wip?
- 26. ¿Cómo se obtiene un largo sin firmar de una cuerda?
- 27. primavera: cómo ignorar la propiedad @Autowired si frijol no se define
- 28. ¿Cómo se obtiene la documentación XML para mostrar para una biblioteca de C referenciada?
- 29. C#: ¿cómo se obtiene una clase base de clase?
- 30. ¿Cómo se obtiene la longitud de una cuerda?
¿Puedes mostrar un ejemplo de código donde llamas a ToJson? No arroja cuando lo intento ... –
Sospecho que al menos * se ha omitido algún código, ya que no hay una buena manera de establecer los valores -? –