使用XmlSerializer创建具有属性和值但没有子元素的元素

23 c# xmlserializer

希望对于那里的人(可能是一个骗子)来说这应该是一个简单的答案,但我似乎无法弄明白.

我需要输出一个如下所示的元素:

<Quantity foo="AB" bar="CD">37</Quantity>
Run Code Online (Sandbox Code Playgroud)

我知道如何得到这个:

  <Quantity foo="AB" bar="CD">
    <qty>37</qty>
  </Quantity>
Run Code Online (Sandbox Code Playgroud)

包含Quantity类

public int qty;    
[XmlAttribute]
public string foo;

[XmlAttribute]
public string bar;
Run Code Online (Sandbox Code Playgroud)

但当然,无论我插入数量的变量是什么变成它自己的子元素.

另一方面,如果我在父元素中将Quantity作为变量,那么我可以设置值并获取

<Quantity>37</Quantity>
Run Code Online (Sandbox Code Playgroud)

但后来我不知道如何获得属性.

如果没有一个简单的方法来使用XmlSerializer,我会非常惊讶,但我还不知道.有任何想法吗?

小智 52

我在这里找到答案:Xmlserializer - 控制元素 - 属性配对(修订版).

以下是如何操作:使用[XmlText]属性标记value 属性.

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;

}
Run Code Online (Sandbox Code Playgroud)