XmlSerializer反序列化

C#中XmlSerializer类实现序列化和反序列化。我有一个父类是电脑类,子类一是笔记本有属性电池,子类二是台式机有自己的属性机箱。当然他们都继承自父类电脑类,Lis... C#中
XmlSerializer类实现序列化和反序列化。
我有一个父类是电脑类,子类一是笔记本有属性 电池,子类二是台式机有自己的属性机箱。当然他们都继承自父类电脑类,List<父类>的实体里边放了很多个不同子类的实例,有笔记本的,有台式机的,现在已经通过序列化生成了XML格式。
我想再用反序列化将这个XML各式重新变成List,但是用List<父类>接收的时候是空的了 ,应该是子类反序列化的时候不再认识父类了。用var 接收了转换了不行的。
展开
 我来答
阳光的雷咩咩
2014-07-17 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7831万
展开全部

试试我写的这个

    public class XmlSerializeHelper
    {
        /// <summary>
        /// Serialize QueryBuilder to string
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="o"></param>
        /// <returns></returns>
        public static string Serialize<T>(T o) where T : class
        {
            XmlSerializer ser = new XmlSerializer(o.GetType());
            StringWriter textWriter = new StringWriter();
            ser.Serialize(textWriter, o);
            return textWriter.ToString();
        }

        /// <summary>
        /// DeSerialize string to QueryBuilder
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="s"></param>
        /// <returns></returns>
        public static T DeSerialize<T>(string s) where T : class
        {
            XmlSerializer ser = new XmlSerializer(typeof(T));
            TextReader tr = new StringReader(s);
            return ser.Deserialize(tr) as T;
        }


    }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式