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

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