3

我创建了一些自定义类型,例如:

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

和一个类似的Mass,等等。

我还有一个自定义对象,例如Planet,它使用这些自定义类型作为属性。

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

Planet考虑到这一点,在这种情况下进行序列化的最佳实践是什么,Mass并且Temperature将来可能会略有变化(例如添加KelvinTemperature)?我是否应该拥有MassTemperature继承类似IQuantity.

4

2 回答 2

1

请参阅@Adriano 的评论。这就是我需要的。

是的,您可以根据需要添加任意数量的公共属性。为了进行比较,请在此处查看此帖子:XmlSerializer 和 BinaryFormatter 之间的区别是什么

于 2012-08-08T14:20:23.637 回答
0

二进制序列化对添加和删除类型的属性非常挑剔。如果您使用版本兼容的序列化程序(例如基于 xml 的序列化程序),您将能够可靠地在类版本之间进行序列化/反序列化。

您可能需要考虑使用protobuf.Net进行序列化 - 它成熟、非常快速且版本容错。

于 2012-05-22T09:29:35.453 回答