我从XSD
生成类,需要填充类到序列化为xml。在工厂处理不同版本的类
我有不同的类,包含进入生成类的所有信息。
问题是生成的类有版本,这些类中的属性是同一版本中的其他类。
class LocalData
{
public MyClass property { get; set; }
}
class XmlVersion1
{
public MyClassV1 property { get; set; }
}
class XmlVersion2
{
public MyClassV2 property { get; set; }
public MyClassXV2 newProperty { get; set; }
}
在MyClassV1
和V2
数据基本上是相同的,因此可以使用相同的代码。
我想作一个工厂,只是采取了LocalData
类和任何版本的类和填充数据的版本类,但我碰到的时候我想做property = new MyClassVx
一个问题,因为工厂不知道它应该创建哪个版本。
我能做
if (parameter is MyClassV1)
paramter.MyClassV1 = new MyClassV1
等等,但就是代码了很多。
这是为了生成由外部公司指定的xml消息,它们有不同的版本,我们必须能够将内容序列化并反序列化到我们的内部系统中。