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,则要进行一定的改造。

  • 相关阅读:
    Singleton模式
    c++ 的重载、覆盖、隐藏
    Facade模式
    c++ 函数设计
    Adapter模式
    php.ini之完全中文版
    用PHP使Web数据分析进入更高境界
    PHP缩略图生成程序
    PHP例解Webzine编辑和发送
    原创]HTML网页间利用JavaScript通过URL传递变量
  • 原文地址:https://www.cnblogs.com/FreeDong/p/2172555.html
Copyright © 2011-2022 走看看