0
3つの異なるオブジェクトを3つの異なるXMLにシリアライズする必要があります。さらに、私はそれを逆シリアル化します。クラスシリアライゼーションデザイン
私のクラスのデザイン:
class Program
{
public static void Main()
{
CarsPersistence cars = new CarsPersistence()
{
Cars = new Car[]
{
new Car{ Name = "Car1", Speed = 201},
new Car{ Name = "Car2", Speed = 202},
new Car{ Name = "Car3", Speed = 203},
new Car{ Name = "Car4", Speed = 204},
new Car{ Name = "Car5", Speed = 205},
}
};
WaysPersistence ways = new WaysPersistence()
{
Ways = new Way[]
{
new Way{Number = 100, Length = 200 },
new Way{Number = 101, Length = 201 },
new Way{Number = 102, Length = 202 },
new Way{Number = 103, Length = 203 },
new Way{Number = 104, Length = 204 },
new Way{Number = 105, Length = 205 },
new Way{Number = 106, Length = 206 },
new Way{Number = 107, Length = 207 },
}
};
CarsWaysPersistence carsWays = new CarsWaysPersistence()
{
CarsWays = new KeyValuePair<Car, Way>[]
{
new KeyValuePair<Car, Way>(cars.Cars[0], ways.Ways[2]),
new KeyValuePair<Car, Way>(cars.Cars[3], ways.Ways[1])
}
};
}
}
[Serializable]
public class Car
{
public int Speed { get; set; }
public string Name { get; set; }
}
[Serializable]
public class CarsPersistence
{
public Car[] Cars { get; set; }
}
[Serializable]
public class Way
{
public int Number { get; set; }
public int Length { get; set; }
}
[Serializable]
public class WaysPersistence
{
public Way[] Ways { get; set; }
}
public class CarsWaysPersistence
{
public KeyValuePair<Car, Way>[] CarsWays { get; set; }
}
私は別のXMLファイルに3つの永続クラス(CarsPersistence、WaysPersistence、CarsWaysPersistence)をシリアライズします。
私の問題は重複しています:CarsWaysPersistenceは、既に他のXMLファイルで構成されているCarオブジェクトとWayオブジェクトを持っています。おそらく、私はXMLファイルで参照を保存することはできません。
この複製をどのように解決できるか。 ありがとう
代わりにDictionaryを使用します。public KeyValuePair [] CarsWays {get;セット; }:公共の辞書> CarsWays {get;セット; } –
jdweng
jdwengありがとうございますが、私を助けません – zzfima
リストは、重複の問題を解決する必要があります。 –
jdweng