我正在尝试做一些我无法找到任何帮助的事情。我有一个类,在这个类中它代表了另外两个作为属性公开的类。我希望类的属性位于包含类的根目录下,而不是具有类名和值:
示例:
public Origin Origin { get; set; }
public Destination Destination { get; set; }
这两个定义的节点应该在XML中标记为:
<RootClass>
<ValueFromOrigin />
<ValueFromDestination />
</RootClass>
目前,我的序列化带回来了:
<RootClass>
<Origin>
<ValueFromOrigin />
</Origin>
<Destination>
<ValueFromDestination />
</Destination />
</RootClass>
我尝试将[XmlElement("RootClass")]
添加到Origin
和Destination
的属性中但是会出错,假设它因某种原因尝试复制节点。有人试过这个吗?
感谢帮助人员。
埃里克
答案 0 :(得分:4)
您需要自定义序列化。如果没有标记信息,默认的序列化程序将不知道如何反序列化所有数据。
想象一下,如果这两个属性都是字符串。哪个元素属于哪个属性?
答案 1 :(得分:1)
我认为,如果你有xml样本并且不知道如何编写类,最简单的方法是使用xsd.exe工具来生成类。
当你有大的xml架构并且不想花很多时间来编写用于序列化的类时,它非常有用。