2013-04-15 89 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確定;這將工作 –