c# - 如何使用 XmlSerializer 反序列化为 List<String>

标签 c# xml-serialization

我正在尝试将下面的 XML 反序列化为类,使用 Components反序列化为 List<string> ,但不知道该怎么做。反序列化器对所有其他属性工作正常,但不是 Components .有人知道怎么做吗?

<ArsAction>
  <CustomerName>Joe Smith</CustomerName>
  <LoginID>jdsmith</LoginID>
  <TicketGroup>DMS</TicketGroup>
  <Software>Visio 2007 Pro</Software>
  <Components>
    <Component>Component 1</Component>
    <Component>Component 2</Component>
  </Components>
  <Bldg>887</Bldg>
  <Room>1320p</Room>
</ArsAction>

最佳答案

添加这样的属性来保存组件列表:

[XmlArray()]
public List<Component> Components { get; set; }

编辑:抱歉我看错了。你想把它读入一个字符串集合。我刚刚在下面尝试了这个并且它适用于您的示例。关键是设置正确的 xml 序列化属性。

public class ArsAction
{
    [XmlArray]
    [XmlArrayItem(ElementName="Component")]
    public List<string> Components { get; set; }
}

关于c# - 如何使用 XmlSerializer 反序列化为 List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1208643/

相关文章:

c# - Alpha层错误

c# - 在 Windows 窗体应用程序中使用 CaSTLe Windsor

为索引 0 插入优化的 C# 集合?

javascript - 将 svg 保存为 png 图像到磁盘 - 浏览器差异

.Net Xml 反序列化 - 支持多个命名空间

.net - 无缘无故反序列化以下 XML(来自 REST 服务)时发生异常!

c# - 在 C# 中压缩文件

c# - Unity3d 中的多线程脚本调用

C# 将 XML 混合内容中的文本反序列化为自定义对象?

具有不带命名空间的对象字段的对象的 C# XML 序列化