多态XML序列化/反序列化 [英] Polymorphic XML serialization/deserialization

查看:208
本文介绍了多态XML序列化/反序列化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有:

public class B     
{
    public string Some { get; set; }
}

public class D : B
{
    public string More { get; set; }
}

[KnownType(typeof(D))]
public class X
{        
    public B[] Col { get; set; }
}

我想自动读/写XML的完全一样:

I want to automatically read/write XML exactly like:

<X>
 <Col>
  <B Some="val1" />
  <D Some="val2" More="val3" />
 </Col>
</X>

无论是的XmlSerializer 不是的DataContractSerializer 帮助了我。该XML结构是必需的。

Neither XmlSerializer not DataContractSerializer helped me. This XML structure is mandatory.

所以,问题是:?才能实现这一目标,或我必须手动解析XML

So question is: can this be achieved or i have to parse that XML manually?

谢谢, 安德烈

推荐答案

尝试<一href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlarrayitemattribute.aspx">XmlArrayItem与XmlSerializer的:

Try XmlArrayItem with XmlSerializer:

public class X
{        
     [XmlArrayItem(typeof(D)),
      XmlArrayItem(typeof(B))]
     public B[] Col { get; set; }
}

这篇关于多态XML序列化/反序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆