我有一个自定义对象,它有一个名为“Name”的字符串属性 我想保持序列化生成的 XML 相同,但向名为“NiceName”的元素添加一个值为“全名”的属性。
这是我目前拥有的:
<TheObject>
<Name>mr nobody</Name>
</TheObject>
这是我想要生成的:
<TheObject>
<Name NiceName='Full name'>mr nobody</Name>
</TheObject>
我只需要在某些 XSLT 中使用它,所以我不想尽可能改变类的工作方式。 IE。将名称从字符串更改为自定义类。所有对象都将具有相同的属性,它永远不会改变,它将完全只读。
最佳答案
您可以结合使用 XMLAttribute 和 XmlText()
以下面的类声明为例:
public class Description {
private int attribute_id;
private string element_text;
[XmlAttribute("id")]
public int Id {
get { return attribute_id; }
set { attribute_id = value; }
}
[XmlText()]
public string Text {
get { return element_text; }
set { element_text = value; }
}
}
输出将是
<XmlDocRoot>
<Description id="1">text</Description>
关于c# - 将 Xml 属性添加到字符串属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4154621/