Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用XmlSerializer反序列化具有并行泛型列表属性的类型_C#_Xml Serialization - Fatal编程技术网

C# 无法使用XmlSerializer反序列化具有并行泛型列表属性的类型

C# 无法使用XmlSerializer反序列化具有并行泛型列表属性的类型,c#,xml-serialization,C#,Xml Serialization,我在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 Group

我在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
}
公共类SomeClass
{
公共SomeGroupA GroupA{get;set;}
公共SomeGroupB GroupB{get;set;}
}
公共类GroupA:列表:IXmlSerializer
{
//xml序列化程序
}
公共类GroupB:列表:IXmlSerializer
{
//xml序列化程序
}
GroupBase和GroupBBase的派生类的泛型列表都已成功反序列化。因此,派生类的序列化和反序列化没有问题

唯一的问题是:一次只能反序列化SomeGroupA或SomeGroupB中的一个,这取决于xml文件中哪个组的xml排在第一位

<Root>
  <GroupA>
    <GroupAChild1></GroupAChild1>>
     ...
     ...
     ...
  </GroupA>

  <GroupB>
    <GroupBChild1></GroupBChild1>>
    ...
    ...
    ...
  </GroupB>

</Root>

>
...
...
...
>
...
...
...

在这种情况下,Someclass的GroupA属性将获得内容,而GroupB属性将获得0项,无论它有什么内容。如果我改变顺序,结果会相反

在我看来,您的IXmlSerializable似乎将读取器放在了错误的位置,但我们无法看到,因为您没有显示该代码。我已尝试设置断点,在本例中,IXmlSerializable的方法根本不会为xml显示在第二位的其他组调用。