C#中,我想持久化一泛型集合里的数据,写入文件中,怎样读出来转化成原来的类型
3个回答
展开全部
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
{
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中的类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用BinaryFormatter直接序列化反序列化即可,会自动保存类型信息,需要的时候直接强制转换即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |