C#中,我想持久化一泛型集合里的数据,写入文件中,怎样读出来转化成原来的类型

 我来答
宇宙之心眼
2012-08-04 · TA获得超过623个赞
知道小有建树答主
回答量:610
采纳率:100%
帮助的人:417万
展开全部
public static string Serialize<T>(T obj)
{
XmlSerializer xs = null;
StringWriter sw = null;
try
{
xs = new XmlSerializer(typeof(T));
sw = new StringWriter();
xs.Serialize(sw, obj);
sw.Flush();
return sw.ToString();
}
catch (Exception err)
{
throw err;
}
finally
{
if (sw != null)
{
sw.Close();
sw.Dispose();
}
}
}
public static T Deserialize<T>(string xml)
{
if (string.IsNullOrEmpty(xml))
return default(T);
XmlSerializer xs = null;
StringReader sr = null;
try
{
xs = new XmlSerializer(typeof(T));
sr = new StringReader(xml);
return (T)xs.Deserialize(sr);
}
catch (Exception err)
{
throw err;
}
finally
{
if (sr != null)
{
sr.Close();
sr.Dispose();
}
}
}

序列化与反序列化的代码,可以将你的泛型列表中的对象序列化为XML,前提是你的泛型类为Serialzable
追问
就是因为不能泛型类不能为Seriazable,所以我才不能呢个用序列化和反序列化的操作,才想到用创建文件流的方式写入文件中,但是读出来就有问题了~~~因为读出来的是string类型,所以不能转化为我之前写入文件txt中的类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
草薙在
2012-08-04 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6327万
展开全部
用BinaryFormatter直接序列化反序列化即可,会自动保存类型信息,需要的时候直接强制转换即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26c14b1d3
2012-08-04 · TA获得超过336个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:328万
展开全部
序列化 反序列化 操作即可。
追问

我知道这个方法,但是我现在想把这个集合写进文件夹里,如

其中ss是一个集合,我怎样读出来,并转成当时保存进去时的数据类型

追答
那你为什么不把整个对象序列化到一个文件中后保存,用它的时候直接反序列化出来,不就行了吗?为什么要把数据集合ss拆分后一句一句的保存呢。保存一个整体对象是最方便最快捷的。除非你还有其他什么需要。
如果你非要按你现在的思路也可以,用File.ReadAllLines(Your paths)。具体细节你可以做控制。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式