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

  • 相关阅读:
    easyExcel入门
    UML-从需求到设计--迭代进化
    UML-操作契约总结
    102. Binary Tree Level Order Traversal
    98. Validate Binary Search Tree
    95. Unique Binary Search Trees II
    96. Unique Binary Search Trees
    94. Binary Tree Inorder Traversal
    84. Largest Rectangle in Histogram
    92. Reverse Linked List II
  • 原文地址:https://www.cnblogs.com/FreeDong/p/2172555.html
Copyright © 2011-2022 走看看