c# - 使用 XmlSerializer 获取列表时可以省略干预级别吗?

标签 c# .net xml xmlserializer

我的问题最好通过一个简单的例子来描述。考虑这样的 2 个类:

class Order {
  [XmlAttribute] int orderId;
  [XmlAttribute] int customerId;
  List<OrderItem> items;
}

class OrderItem {
  [XmlAttribute] int partCode;
  [XmlAttribute] int quantity;
}

使用 XmlSerializer,这将序列化为如下内容:

<order orderId="...", customerId="..." >
  <Items>
    <orderItem partCode="..." quantity="..." />
  </Items>
</order>

我想要做的是删除 级别,以便 元素直接位于相应的 下方

有什么办法可以做到这一点吗?

最佳答案

使用XmlElement属性:

class Order {
  [XmlAttribute] int orderId;
  [XmlAttribute] int customerId;
  [XmlElement]
  List<OrderItem> items;
}

使用此属性,您还可以为 OrderItem 对象指定自定义元素名称,甚至为 OrderItem 的每个子类型指定不同的元素名称

关于c# - 使用 XmlSerializer 获取列表时可以省略干预级别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4994927/

相关文章:

xml - VB.NET 从内联模式解析 XML 别名

c# - 如何使用 1 个计时器入队并使用另一个计时器出队

c# - 按钮不能完全点击

c# - Caliburn Micro - 在单独的 DLL 中查看和查看模型

c# - 使用 IIS 7 的 CaSTLe MonoRail 路由?

.net - 如何从文档进纸器异步扫描和传输图像

c# - .net Core amd Roslyn CSharpCompilation,类型 'Object' 在未引用的程序集中定义

html - 用 HTML 标签替换 Doxygen detaileddescription 标签

xml - 如何使用 pom.xml 备份文件?

c# - WPF 中的圆边 3D 样式按钮