[英]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;
}
考慮到未來Mass
和Temperature
可能略有變化(例如將Kelvin
添加到Temperature
),在這種情況下序列化Planet
的最佳實踐是什么? 我是否應該從IQuantity
等自定義界面繼承Mass
和Temperature
。
請參閱@Adriano的評論 。 這就是我需要的。
是的,您可以根據需要添加任意數量的公共屬性。 為了比較,請看這篇文章:SO: XmlSerializer和BinaryFormatter之間有什么區別
二進制序列化對於添加和刪除類型的屬性非常挑剔。 如果您使用版本容錯的序列化程序(例如基於xml的序列化程序),您將能夠在類的版本之間可靠地序列化/反序列化。
您可能需要考慮使用protobuf.Net進行序列化 - 它是成熟的,非常快速且版本容忍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.