44
我要在以下格式的XML:不XmlArray使用XmlArrayItem屬性的序列化的C#類
<configuration><!-- Only one configuration node -->
<logging>...</logging><!-- Only one logging node -->
<credentials>...</credentials><!-- One or more credentials nodes -->
<credentials>...</credentials>
</configuration>
我試圖創建一個類Configuration
具有[Serializable]
屬性。序列化憑證的節點,我有以下幾點:
[XmlArray("configuration")]
[XmlArrayItem("credentials", typeof(CredentialsSection))]
public List<CredentialsSection> Credentials { get; set; }
然而,當我序列這對XML的XML是按以下格式:
<configuration>
<logging>...</logging>
<configuration><!-- Don't want credentials nodes nested in a second
configuration node -->
<credentials>...</credentials>
<credentials>...</credentials>
</configuration>
</configuration>
如果我刪除了[XmlArray("configuration")]
行,我得到如下:
<configuration>
<logging>...</logging>
<Credentials><!-- Don't want credentials nodes nested in Credentials node -->
<credentials>...</credentials>
<credentials>...</credentials>
</Credentials>
</configuration>
我如何序列化此我想要的方式,與多個<credentials>
節點的單個根節點<configuration>
內?我想這樣做,而不必執行IXmlSerializable
並執行自定義序列化。這是我的班級的描述:
[Serializable]
[XmlRoot("configuration")]
public class Configuration : IEquatable<Configuration>
是的,這工作!我是這樣設置的「它是一個List」,必須使用'XmlArrayItem'屬性「,我甚至沒有想到將它定義爲一個常規的'XmlElement'。 – 2010-07-21 20:22:45
很好的答案,我有同樣的問題 - 我想刪除: DATAITEMS> 與解決它: [的XmlElement( 「DataItem的」) 公開名單的DataItem {獲得;組; } –
nologo
2011-06-23 11:04:31
感謝Mikael。這幫助我解決了今天的問題。 +1 – John 2011-10-31 19:10:28