2017-08-08 62 views
0

我有課,這樣的事情:C#序列化成XML我自己的類型屬性

Class1: 
    List<Class2> A; 
    string B; 

Class2: 
    Class3 A2; 
    string B2; 

Class3: 
    string A3; 
    string B3; 

而且我想它序列化到XML,這將是這樣看:

<Class1> 
    <Class2 A3="x" B3="y" B2="z" /> 
    <Class2 A3="x2" B3="y2" B2="z2" /> 
    ... 
    <B> abc </B> 
</Class1> 

當我在Class2字段中設置爲XmlAttribute時,我得到了unhandler異常System.InvalidOperationException
有沒有辦法做到這一點? 編輯:好吧,我給較少的細節。我有問題如何序列化我自己的類型列表,將看起來像。我可以序列化此爲xml,如:

<Class1> 
    <A> 
    <Class2 B2="x"> 
     <Class3 A3="x" B3="x"/> 
    </Class2> 
    <Class2 B2="x"> 
     <Class3 A3="x" B3="x"/> 
    </Class2> 
    </A> 

但我想有CLASS3作爲屬性沒有名字的3級(從該類僅字段),我不想有列出,只列出的元素有名稱的Class2 。我不確定這是可以理解的...

+0

我猜這個異常有一個消息,甚至可能是一個內部異常。你可以發佈嗎?要序列化班級成員,他們必須公開!很重要。 –

+0

[Serialize屬性作爲元素中的Xml屬性]可能的重複(https://stackoverflow.com/questions/11330643/serialize-property-as-xml-attribute-in-element) –

+0

我編輯我的問題,並添加一些細節。 – heheszki

回答

0

你可以將A3和B3道具移動到Class2嗎?

Class1: 
[XmlElement("Class2")] 
List<Class2> A; 
[XmlElement] 
string B; 

Class2: 
[XmlAttribute] 
string A3; 
[XmlAttribute] 
string B3; 
[XmlAttribute] 
string B2;