Использование XmlSerializer для создания элемента с атрибутами и значением, но без подэлемента

Надеюсь, это будет простой ответ для кого-то там (и, возможно, обман), но я не могу Похоже, это понятно.

Мне нужно вывести элемент, который выглядит следующим образом:

<Quantity foo="AB" bar="CD">37</Quantity>

Я знаю, как получить это:

  <Quantity foo="AB" bar="CD">
    <qty>37</qty>
  </Quantity>

с классом «Количество», содержащим

public int qty;    
[XmlAttribute]
public string foo;

[XmlAttribute]
public string bar;

, но затем, конечно, любую переменную, которую я вставляю количество в становится его собственным подэлементом.

С другой стороны, если я сделаю Количество переменной в родительском элементе, тогда я могу установить значение и получить

<Quantity>37</Quantity>

, но тогда я не знаю, как получить атрибуты.

Я был бы очень удивлен, если бы не было простого способа сделать это с XmlSerializer, но я не пока не знаю Есть идеи?

23
задан 19 August 2010 в 17:01
поделиться

1 ответ

Я нахожу ответ здесь: Xmlserializer - Сопряжение элемента управления и атрибута (пересмотренное) .

Вот как это сделать: отметьте свойство value атрибутом [XmlText] .

public class Quantity {
  // your attributes
  [XmlAttribute]
  public string foo;

  [XmlAttribute]
  public string bar;

  // and the element value (without a child element)
  [XmlText]
  public int qty;

}
52
ответ дан 29 November 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: