Могу ли я пропустить промежуточный уровень при использовании XmlSerializer для списка? - PullRequest
2 голосов
/ 14 февраля 2011

мой вопрос лучше всего описать на простом примере. рассмотрим 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>

я хочу удалить уровень , чтобы элементы располагались прямо под соответствующим

есть ли способ сделать это?

1 Ответ

5 голосов
/ 14 февраля 2011

Используйте атрибут XmlElement:

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

С помощью этого атрибута вы также можете указать произвольное имя элемента для объектов OrderItem или даже другое имя элемента для каждого подтипа OrderItem

...