Pergunta

Eu criei alguns tipos personalizados, por exemplo:

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

e um semelhante para Mass, etc.

Eu também tenho um objeto personalizado, por exemplo Planet, que usa esses tipos personalizados como propriedades.

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

Qual é a melhor prática para serializar Planet neste caso considerando que Mass e Temperature pode mudar ligeiramente no futuro (por ex.adicionando Kelvin para Temperature)?Eu deveria ter Mass e Temperature herdando de uma interface personalizada de algo como IQuantity.

Foi útil?

Solução

Por favor, veja @Adriano's Comente.Isso é o que eu precisava.

Sim, você pode adicionar quantas propriedades públicas precisar.Para comparação, dê uma olhada neste post aqui no SO: Quais são as diferenças entre XmlSerializer e BinaryFormatter

Outras dicas

A serialização binária é bastante exigente quanto às propriedades adicionadas e removidas dos tipos.Se você usar um serializador tolerante à versão (por exemplo, serializadores baseados em xml), você poderá serializar/desserializar de maneira confiável entre versões de classes.

Você pode considerar usar protobuf.Net para sua serialização - é maduro, muito rápido e tolerante a versões.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top