精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程
返回建站学首页
导航:
建站首页 | 网站设计 | 网站开发 | 网站运营 | 网页软件 | 建站指南 | 搜索优化 | 图像处理 | 视频教程 | 书籍教程 | 建站专题
当前位置:首页>网站开发>xml教程>正文

用XmlSerializer串行化(序列化)ArrayList数组对象与反序列化


来源:Sipo Blog 时间:06-11-28 点击: 点击这里收藏本文
刚才把经过xml串行化(序列化)的数组对象,输入进了数据库,然后再读取出来,反序列化为一个数组对象。成功了!!

整个过程只用了这么点代码,真是一气呵成的感觉。

学会了这一手技术,以后做对象的数据转移的时候又多了一种手段,哈哈!

PS:我发现写blog的时候Z-BLOG的tag功能很不人性化,找了半天,哈欠,应该再改一下。

简单的代码如下:


            ArrayList aList = new ArrayList();
            aList.Add("aaa");
            aList.Add("bbb");
            XmlSerializer ser = new XmlSerializer(typeof(ArrayList));         
            System.IO.MemoryStream mem = new MemoryStream();
            XmlTextWriter writer = new XmlTextWriter(mem, Encoding.Default);
            ser.Serialize(writer, aList);
            writer.Close();

            string strtmp=Encoding.Default.GetString(mem.ToArray());
            MessageBox.Show(strtmp);
//看!这里串行为什么了,串行为一个xml了!!
//(www.dc9.cn版权所有)

            XmlSerializer mySerializer = new XmlSerializer(typeof(ArrayList));
            StreamReader mem2 = new StreamReader(new MemoryStream(System.Text.Encoding.Default.GetBytes(strtmp)), System.Text.Encoding.Default);
            ArrayList myObject = (ArrayList)mySerializer.Deserialize(mem2);

            MessageBox.Show(myObject[0].ToString()); 
//这里反序列化为对象,测试成功了!!
//(www.dc9.cn版权所有)


把他们函数化:序列化的函数

private string myXmlSerializer(object o)
            {
                XmlSerializer ser = new XmlSerializer(o.GetType());
                System.IO.MemoryStream mem = new MemoryStream();
                XmlTextWriter writer = new XmlTextWriter(mem, Encoding.Default);
                ser.Serialize(writer, o);
                writer.Close();
                return Encoding.Default.GetString(mem.ToArray());
            }

反序列化的函数

private object myXmlDeserialize(string s, Type t)
        {
            XmlSerializer mySerializer = new XmlSerializer(t);
            StreamReader mem2 = new StreamReader(new MemoryStream(System.Text.Encoding.Default.GetBytes(s)), System.Text.Encoding.Default);
            return mySerializer.Deserialize(mem2);
        }


  把此文章收藏到:          
广而告之
文章搜索
  • Google JZxue.Com

关于我们 | 联系我们 | 友情链接 | 网站地图
Copyright © 2005 - 2006 建站学 All rights reserved.