C# 我的反序列化XML列表<&燃气轮机;是空的
我在从XML从反序列化PN填充列表时遇到问题 这是我的类对象(在客户端上): 这是XML:C# 我的反序列化XML列表<&燃气轮机;是空的,c#,xml-deserialization,C#,Xml Deserialization,我在从XML从反序列化PN填充列表时遇到问题 这是我的类对象(在客户端上): 这是XML: <Groups> <Group> <GroupRef>00000000-0000-0000-0000-000000000000</GroupRef> <Name>Todays Work</Name> <Description>System</Description> </Group&
<Groups>
<Group>
<GroupRef>00000000-0000-0000-0000-000000000000</GroupRef>
<Name>Todays Work</Name>
<Description>System</Description>
</Group>
<Group>
<GroupRef>00000000-0000-0000-0000-000000000000</GroupRef>
<Name>All</Name>
<Description>System</Description>
</Group>
<Group>
<GroupRef>00000000-0000-0000-0000-000000000000</GroupRef>
<Name>Unassigned</Name>
<Description>System</Description>
</Group>
</Groups>
00000000-0000-0000-0000-000000000000
今天的工作
系统
00000000-0000-0000-0000-000000000000
全部的
系统
00000000-0000-0000-0000-000000000000
未分配
系统
我没有收到任何错误,但对象计数为零?您的输入XML格式错误。如果我构造对象并序列化它,我得到
<Groups>
<Items>
<Group>
<GroupRef>bf2616d7-b98c-4743-8e25-2e0e101ab2da</GroupRef>
<Name>test</Name>
<Description>desc</Description>
</Group>
</Items>
</Groups>
bf2616d7-b98c-4743-8e25-2e0e101ab2da
测试
描述
因此,您应该按照当前的设计将每个组包装起来。您的输入XML格式错误。如果我构造对象并序列化它,我得到
<Groups>
<Items>
<Group>
<GroupRef>bf2616d7-b98c-4743-8e25-2e0e101ab2da</GroupRef>
<Name>test</Name>
<Description>desc</Description>
</Group>
</Items>
</Groups>
bf2616d7-b98c-4743-8e25-2e0e101ab2da
测试
描述
因此,您应该按照当前的设计将每个组包装起来。您的
XML
不能正确反映类组的结构。将您的XML
更改为
<Groups>
<ArrayOfGroup>
<Group>
<GroupRef>00000000-0000-0000-0000-000000000000</GroupRef>
<Name>Todays Work</Name>
<Description>System</Description>
</Group>
<Group>
<GroupRef>00000000-0000-0000-0000-000000000000</GroupRef>
<Name>All</Name>
<Description>System</Description>
</Group>
<Group>
<GroupRef>00000000-0000-0000-0000-000000000000</GroupRef>
<Name>Unassigned</Name>
<Description>System</Description>
</Group>
</ArrayOfGroup>
</Groups>
或者,您可以将XML中的标记命名为“Items”,并将XmlArray
属性重命名为“Items”,就像最初那样。您的XML
不能正确反映类组的结构。将您的XML
更改为
<Groups>
<ArrayOfGroup>
<Group>
<GroupRef>00000000-0000-0000-0000-000000000000</GroupRef>
<Name>Todays Work</Name>
<Description>System</Description>
</Group>
<Group>
<GroupRef>00000000-0000-0000-0000-000000000000</GroupRef>
<Name>All</Name>
<Description>System</Description>
</Group>
<Group>
<GroupRef>00000000-0000-0000-0000-000000000000</GroupRef>
<Name>Unassigned</Name>
<Description>System</Description>
</Group>
</ArrayOfGroup>
</Groups>
或者,您可以将XML中的标记命名为“Items”,并将XmlArray
属性重命名为“Items”,就像最初一样。问题在于属性组上使用的属性。
使用您定义的属性,所有XML元素“Group”都需要包含在名为“Items”的元素中
解决方案很简单,只需使用xmlement属性,如下所示。将属性更改为使用XmlElement(“组”)后,它应该可以工作
public class Groups
{
public Groups()
{
group = new List<Group>();
}
[XmlElement("Group")]
public List<Group> group { get; set; }
}
公共类组
{
公共团体()
{
组=新列表();
}
[XmlElement(“集团”)]
公共列表组{get;set;}
}
问题在于属性组上使用的属性。
使用您定义的属性,所有XML元素“Group”都需要包含在名为“Items”的元素中
解决方案很简单,只需使用xmlement属性,如下所示。将属性更改为使用XmlElement(“组”)后,它应该可以工作
public class Groups
{
public Groups()
{
group = new List<Group>();
}
[XmlElement("Group")]
public List<Group> group { get; set; }
}
公共类组
{
公共团体()
{
组=新列表();
}
[XmlElement(“集团”)]
公共列表组{get;set;}
}
您的xml结构中没有Items标记,但您将列表定义为Items@CSharpie嗨,谢谢你的评论。我在最后一刻添加了项目标签(绝望)。在那个加法之前,它给了我同样的结果。VisualStudio可以从xml@DmitryDovgopoly谢谢现在我将对此进行研究xml结构中没有Items标记,但是您将列表定义为Items@CSharpie嗨,谢谢你的评论。我在最后一刻添加了项目标签(绝望)。在那个加法之前,它给了我同样的结果。VisualStudio可以从xml@DmitryDovgopoly谢谢我现在就来研究这个问题:熟能生巧:)熟能生巧:)
public class Groups
{
public Groups()
{
group = new List<Group>();
}
[XmlElement("Group")]
public List<Group> group { get; set; }
}