【发布时间】:2017-08-08 22:13:06
【问题描述】:
我有课,是这样的:
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 作为属性而不使用名称 class 3(仅来自此类的字段),并且我不想列出,只有列出的元素具有名称 Class2。我不确定这是否可以理解...
【问题讨论】:
-
我猜这个异常有一个消息,甚至可能是一个内部异常。你能贴出来吗?要序列化班级成员,他们必须是公开的!非常重要。
-
我编辑了我的问题并添加了一些细节。
-
我猜你将不得不使用XElement手工构建它
-
或者快速而肮脏的将
XmlIgnore添加到Class3属性并在Class2中反映子属性。但这实际上只是一种快速而肮脏的方式。