Pregunta

He creado algunos tipos personalizados, por ejemplo:

public class Temperature
{
    protected double _celcius;

    public Temperature(){}

    public Temperature(double celcius)
    {
        _celcius = celcius;
    }

    public double Celcius
    {
        //sets & returns temperature in Celcius
    }

    public double Fahrenheit
    {
        //sets & returns temperature in Fahrenheit
    }
}

y uno similar para Mass, etc.

También tengo un objeto personalizado, por ejemplo. Planet, que utiliza estos tipos personalizados como propiedades.

[Serializable]
public class Planet
{
    public int PositionFromSun;
    public Mass Mass;
    public Temperature Temperature;
}

¿Cuál es la mejor práctica para serializar? Planet en este caso considerando que Mass y Temperature puede cambiar ligeramente en el futuro (p. ej.añadiendo Kelvin a Temperature)?¿Debería haberlo hecho? Mass y Temperature heredando de una interfaz personalizada de algo como IQuantity.

¿Fue útil?

Solución

Por favor vea @Adriano comentario.Esto es lo que necesitaba.

Sí, puedes agregar tantas propiedades públicas como necesites.Para comparar, eche un vistazo a esta publicación aquí en SO: ¿Cuáles son las diferencias entre XmlSerializer y BinaryFormatter?

Otros consejos

La serialización binaria es bastante exigente a la hora de agregar y eliminar propiedades a los tipos.Si utiliza un serializador tolerante a la versión (por ejemplo, serializadores basados ​​en xml), podrá serializar/deserializar de manera confiable entre versiones de clases.

Es posible que desee considerar el uso protobuf.Net para su serialización: es maduro, muy, muy rápido y tolerante a las versiones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top