Надеюсь, это будет простой ответ для кого-то там (и, возможно, обман), но я не могу Похоже, это понятно.
Мне нужно вывести элемент, который выглядит следующим образом:
<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, но я не пока не знаю Есть идеи?
Я нахожу ответ здесь: 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;
}