Question

J'ai créé quelques types personnalisés, par exemple:

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
    }
}

et une autre semblable pour Mass, etc.

J'ai aussi un objet personnalisé, par exemple Planet, qui utilise ces types personnalisés, comme des propriétés.

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

Quelle est la meilleure pratique pour la sérialisation Planet dans ce cas, considérant que Mass et Temperature peut varier légèrement dans le futur (par ex.l'ajout d' Kelvin pour Temperature)?Dois-je avoir Mass et Temperature héritage d'une interface personnalisée de quelque chose comme IQuantity.

Était-ce utile?

La solution

Veuillez voir @Adriano commentaire.C'est ce dont j'avais besoin.

Oui, vous pouvez ajouter autant de propriétés publiques que vous avez besoin.Pour la comparaison de prendre un coup d'oeil à ce post ici DONC: Quelles sont les différences entre le XmlSerializer et BinaryFormatter

Autres conseils

La sérialisation binaire est assez pointilleux sur les propriétés d'être ajoutés et supprimés de types.Si vous utilisez une version tolérante sérialiseur (par exemple à base de xml serialisers), vous serez en mesure fiable de sérialiser / deserialise entre les versions de classes.

Vous pouvez envisager d'utiliser protobuf.Net pour votre sérialisation - il est mature, très très rapide et la version tolérante.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top