2013-04-15 154 views
2

我在.net中使用xml序列化。我有一个属性叫做梯队:如何使用属性创建属性元素

public string tier { get; set; } 

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

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

什么XML序列化的属性,可以使用一个属性来做到这一点?

+0

我不认为你可以通过序列化属性来实现这一点。你的对象有其他属性?那些属性也应该是'setting'元素? –

+0

XmlAttribute(“tier”) – PoweredByOrange

+0

@ programmer93将crate属性'tier =“2”' –

回答

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))); 

不完全自动化的序列化,但它完成了工作。

+0

我正在考虑进行一些重组。而不是有一个简单的字符串属性,我想包装它在一个“设置”类有两个成员在这个类...“名称”和“值”,然后将[xmlattribute]应用到这些成员和[xmlelement]到实际的班级。 对此方法有何想法? –

+0

@Felix确定;这将工作 –