我需要将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有Car和Way对象,它们已经包含在其他XML文件中。可能,我无法在XML文件中保存引用。
如何解决这种重复问题。谢谢
1)序列化所有汽车。 2)序列化所有方式。 3)使用汽车的Name
作为唯一标识符。您还必须为Way
提供一些独特的钥匙。这将允许您通过键映射它们:<car_name, way_key>
。