У меня очень странная проблема с 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>
В этом случае свойство GroupA Someclass будет получать содержимое, а свойство GroupB - 0 элементов независимо от того, какое содержимое оно имеет. И если я изменю порядок, результат будет противоположным.