序列化与反序列化一个集合

今天是中秋假前的最后一天,分享一个前段时间做的序列化一个集合的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,则要进行一定的改造。

转载于:https://www.cnblogs.com/FreeDong/archive/2011/09/09/2172555.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值