我還沒有找到任何關於此的信息,也許有人可以幫忙。反序列化後獲取XmlElementAttribute的名稱
我有(簡化爲方便起見)的XML:
<content>
<field1>value</field1>
<field2>
<field3>value</field3>
</field2>
</content>
我嘗試使用這樣的類反序列化:
[XmlRoot("content")]
public class Content
{
[XmlElement]
public List<Item> Fields { get; set; }
}
public class Item
{
[XmlElement]
public List<Item> Fields { get; set; }
[XmlText]
public String Value { get; set; }
}
我有兩個問題:
燦我得到了該領域的實際名稱?像Item中的
[XmlName] string name;
?或者類的某種屬性?由於某些原因,無法將節點名稱設置爲「field」並添加「type」屬性;-)雖然實際的類和序列化過程非常複雜,但我並不想實現自己的序列化程序。我可以添加通配符,如[XmlElement(「field *」)]嗎?除非我知道第一個問題的答案,否則我無法測試它,所以如果有更好的選擇,我也很想知道它。
謝謝。
看起來你試圖創建一個可以表示任意XML的結構。如果是這樣的話,爲什麼你使用XML序列化呢?使用LINQ to XML可能更適合。 – svick
嗯,你是對的,它是一個相當隨意的結構。關鍵是,我已經在很多情況下使用過XML序列化了,我想在整個項目中保留這個約定(到目前爲止,這是可能的)。當然,如果我找不到解決方案,我將切換到LINQ .. –