您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 辅导 >> 正文    
  C#中如何序列化ArraryList和自定义类型 【注册男护士专用博客】          

C#中如何序列化ArraryList和自定义类型

www.nanhushi.com     佚名   不详 

  在C#中如何序列化ArrayList,并且ArrayList中存放自定义的类型数据?
  请看如下代码:
  ----------------------------------------
  先定义一个自定义类型:
  public struct LocalNetInfo
  {
  string localnet_name;
  string localnet_code;
  string pub_connection;
  string local_connection;
  public string Name
  {
  get { return localnet_name; }
  set { localnet_name = value; }
  }
  public string Code
  {
  get { return localnet_code; }
  set { localnet_code = value; }
  }
  public string PubConnection
  {
  get { return pub_connection; }
  set { pub_connection = value; }
  }
  public string LocalConnection
  {
  get { return local_connection; }
  set { local_connection = value; }
  }
  public override string ToString()
  {
  return Name;
  }
  }
  考试大提示: 下面是序列化和反序列化函数:
  public string SerializeArrayList(ArrayList al)
  {
  Type[] extra = new Type[1];
  extra[0] = typeof(LocalNetInfo);
  XmlSerializer xs = new XmlSerializer(typeof(ArrayList), extra);
  MemoryStream ms = new MemoryStream();
  XmlTextWriter tw = new XmlTextWriter(ms, Encoding.Default);
  xs.Serialize(tw, al);
  tw.Close();
  return Encoding.Default.GetString(ms.ToArray());
  }
  public ArrayList DeserializeArrayList(string serQuestions, Type type, Type[] extratype)
  {
  XmlSerializer xs = new XmlSerializer(type, extratype);
  StreamReader sr = new StreamReader(new MemoryStream(System.Text.Encoding.Default.GetBytes(serQuestions)), System.Text.Encoding.Default);
  return (ArrayList)xs.Deserialize(sr);
  }
  测试代码:
  ArrayList al = new ArrayList();
  LocalNetInfo info = new LocalNetInfo();
  info.Code = "11";
  info.Name = "name1";
  info.PubConnection = "ewere";
  al.Add(info);
  LocalNetInfo info2 = new LocalNetInfo();
  info2.Code = "112";
  info2.Name = "name12";
  info2.PubConnection = "ewere2";
  al.Add(info2);
  //序列化..............
  string s2 = SerializeArrayList(al);
  Type[] extra2 = new Type[1];
  extra2[0] = typeof(LocalNetInfo);
  //反序列化...........
  ArrayList la = DeserializeArrayList(s2, typeof(ArrayList), extra2);
  需要说明在反序列化时这里用到了Type[],这是关键! 考试大论坛

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    ACCESS中两个特殊的宏
    JAVA技巧:JAVA线程死亡或…
    JAVA基础Comparable
    C++函数WSASocket()
    限制文本编辑框输入的中…
    C基础(VC中的TRACE宏)
    2008年9月全国计算机等级…
    ACCESS的参数化查询
    设置在Access项目中检索…
    纯编码实现Access数据库…
    专 题 栏 目