我对XmlSerializer有一个非常奇怪的问题。我有一个这样的课程
public class SomeClass
{
public SomeGroupA GroupA {get;set;}
public SomeGroupB GroupB {get; set;}
}
public class GroupA:List<GroupABase>:IXmlSerializer
{
//xml serializer stuff
}
public class GroupB:List<GroupBBase>:IXmlSerializer
{
//xml serializer stuff
}
GroupABase和GroupBBase的派生类的通用列表都已成功反序列化。因此,派生类的序列化和反序列化没有问题。
唯一的问题是:在SomeGroupA或SomeGroupB中只有一个被反序列化,这取决于哪个组的xml首先出现在xml文件中。
<Root>
<GroupA>
<GroupAChild1></GroupAChild1>>
...
...
...
</GroupA>
<GroupB>
<GroupBChild1></GroupBChild1>>
...
...
...
</GroupB>
</Root>
在这种情况下,Someclass的GroupA属性将获取内容,GroupB属性将获得0项,无论它具有什么内容。如果我改变顺序,结果将是相反的。