簡體   English   中英

C#具有自定義類型的對象的序列化實踐

[英]C# Serialization practices of object with custom types

我創建了一些自定義類型,例如:

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

考慮到未來MassTemperature可能略有變化(例如將Kelvin添加到Temperature ),在這種情況下序列化Planet的最佳實踐是什么? 我是否應該從IQuantity等自定義界面繼承MassTemperature

請參閱@Adriano的評論 這就是我需要的。

是的,您可以根據需要添加任意數量的公共屬性。 為了比較,請看這篇文章:SO: XmlSerializer和BinaryFormatter之間有什么區別

二進制序列化對於添加和刪除類型的屬性非常挑剔。 如果您使用版本容錯的序列化程序(例如基於xml的序列化程序),您將能夠在類的版本之間可靠地序列化/反序列化。

您可能需要考慮使用protobuf.Net進行序列化 - 它是成熟的,非常快速且版本容忍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM