我正在生成类,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 消息,它们有不同的版本,我们必须能够将内容序列化和反序列化到我们的内部系统中。