我從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消息,它們有不同的版本,我們必須能夠將內容序列化並反序列化到我們的內部系統中。