如何使用属性外的属性创建元素

时间:2013-04-15 19:38:36

标签: c# .net xml-serialization

我在.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序列化属性来实现这一属性?

1 个答案:

答案 0 :(得分:0)

简单地说,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)));

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