我在.net中使用xml的序列化。我有一个名为tier的属性:

public string tier { get; set; }


当对象被序列化时,我想要获得的最终结果是:

<settings>
    //Where the value is the value of the tier property
    <setting name="tier" value="2" />
</settings>


通过该一个属性,可以使用哪些xml序列化属性来完成此任务?

最佳答案

简而言之,XmlSerializer不直接支持这种情况。它可以处理:

<foo><tier>2</tier></foo>


要么

<foo tier="2"/>


但不是您想要的东西,除非您将模型变形得很大。

可以使用LINQ-to-XML吗?

var setting = new Setting { tier = "2" };

var xml = new XElement("settings", new XElement("setting",
    new XAttribute("tier", setting.tier)));


不是完全自动化的序列化,但是可以完成工作。

关于c# - 如何创建具有属性之外的属性的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16023431/

10-09 05:27