zoukankan      html  css  js  c++  java
  • 序列化与反序列化一个集合

    今天是中秋假前的最后一天,分享一个前段时间做的序列化一个集合的Demo。其实在.NET或者Java里要进行序列化并不难,首先创建一个进行序列化的类如下:

    SerializationHelper
    publicclass SerializationHelper<T>
    {
    publicstatic SerializationHelper<T> Instance =new SerializationHelper<T>();
    publicstring FilePath { get; set; }

    public SerializationHelper(string filePath =@"C:\Product.xml")
    {
    this.FilePath = filePath;
    }

    ///<summary>
    /// 写入数据
    ///</summary>
    ///<typeparam name="T"></typeparam>
    ///<param name="objects"></param>
    publicbool WriteXml(T[] objects)
    {
    bool result =false;
    if (objects ==null|| objects.Length <1)
    {
    return result;
    }

    XmlSerializer serializer
    =new XmlSerializer(typeof(T[]));
    try
    {
    using (TextWriter tr =new StreamWriter(FilePath))
    {
    serializer.Serialize(tr, objects);
    tr.Close();
    result
    =true;
    }
    }
    catch { throw; }
    return result;
    }

    ///<summary>
    /// 读取数据
    ///</summary>
    ///<returns></returns>
    public T[] ReadXml()
    {
    List
    <T> ts =null;
    XmlSerializer serializer
    =new XmlSerializer(typeof(List<T>));
    using (TextReader tr =new StreamReader(FilePath))
    {
    try
    {
    ts
    = (List<T>)serializer.Deserialize(tr);
    }
    catch { }
    finally
    {
    tr.Close();
    }
    }
    return ts ==null?null : ts.ToArray();
    }
    }

      然后呢,没有然后了,直接使用就OK了。这是一个范型类,调用时再声明你的类型即可。因为该类我是用来提供WCF服务的,所以呢返回类型以及参数都是数组,你可以改成集合List类型,最后一个主意事项是这里面采用C#4.0的语法,如果你没有安装.NET Framework4.0,则要进行一定的改造。

  • 相关阅读:
    Eclipse OSBP 设置 配置
    限制文本框输入的内容
    jquery 操作iframe的几种方法总结
    利用PLUPLOAD上传大文件
    oracle contains
    JSON.parse
    js正则表达式replace里有变量的解决方法用到RegExp类
    Web API WinForm使用HttpClient呼叫Web API
    JQUERY DIALOG窗格内不能使用FORM
    Access forbidden! XAMPP虚拟主机的问题
  • 原文地址:https://www.cnblogs.com/FreeDong/p/2172555.html
Copyright © 2011-2022 走看看