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のシリアル化のベスト プラクティスはTemperatureKelvinですかTemperature? のようなカスタム インターフェイスを継承する必要がMassあります。TemperatureIQuantity

4

2 に答える 2

1

@Adrianoのコメントをご覧ください。これが私が必要としていたものです。

はい、必要な数のパブリックプロパティを追加できます。比較のために、SOに関するこの投稿を見てください:XmlSerializerとBinaryFormatterの違いは何ですか

于 2012-08-08T14:20:23.637 に答える
0

バイナリ シリアライゼーションは、プロパティが型に追加されたり削除されたりすることについて非常にうるさいです。バージョン トレラントなシリアライザー (xml ベースのシリアライザーなど) を使用すると、クラスのバージョン間で確実にシリアライズ/デシリアライズすることができます。

シリアル化にprotobuf.Netの使用を検討することをお勧めします。これは成熟しており、非常に高速で、バージョン トレラントです。

于 2012-05-22T09:29:35.453 に答える