• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

求助关于xml序列化存储在磁盘上和存储在数据库中的区别

黑手党维多 2014-01-18 10:53:14
我正看一个dtcms系统 如下面的一段代码,将一个对象序列化写入文件,然后需要得到这个对象时从文件反序列化,我想问下,这中方法效率高还是怎么地,将一个对象实例化赋值后存储在数据库中不一样吗,然后用的时候再用datareader遍历也就是dr.read(),然后分别给对象.属性赋值,这样不也得到这个对象吗,可使这个系统得到配置文件用的序列化和反序列化,求各位高手相助

public static void Save(object obj, string filename)
{
FileStream fs = null;
// serialize it...
try
{
fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
XmlSerializer serializer = new XmlSerializer(obj.GetType());
serializer.Serialize(fs, obj);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (fs != null)
fs.Close();
}

}
...全文
85 点赞 收藏 8
写回复
8 条回复
黑手党维多 2014年01月19日
引用 5 楼 landry1234 的回复:
呵呵 貌似用xml比较直观点,而且他有个缓存依赖,毕竟是站点信息到处都要用到,xml缓存依赖比数据库缓存灵活点,这个看情况,如果是多组数据肯定是数据库灵活,如果是单组数据二者皆可
分给你了,谢谢
回复 点赞
黑手党维多 2014年01月19日
引用 5 楼 landry1234 的回复:
呵呵 貌似用xml比较直观点,而且他有个缓存依赖,毕竟是站点信息到处都要用到,xml缓存依赖比数据库缓存灵活点,这个看情况,如果是多组数据肯定是数据库灵活,如果是单组数据二者皆可
我上面说的不太清楚,整个序列化没有用缓存依赖,但是反序列化后的对象被用作缓存的值,就是说他最后是用的依赖,也就是反序列化回来后,把反序列化后的对象作为cache的value插入到cache中,我以前看缓存文章,数据库中的表也可以作为缓存依赖项,但是像你说的,用这个序列化比较直观吧,省却数据库建表和查询的麻烦
回复 点赞
黑手党维多 2014年01月19日
引用 5 楼 landry1234 的回复:
呵呵 貌似用xml比较直观点,而且他有个缓存依赖,毕竟是站点信息到处都要用到,xml缓存依赖比数据库缓存灵活点,这个看情况,如果是多组数据肯定是数据库灵活,如果是单组数据二者皆可
这里他没有用到缓存依赖,缓存依赖不是在Cache中用么,然后创建一个依赖于文件或者xml文件的cachedependency对象,然后插入到缓存,文件修改,缓存就作废,可是这里是序列化,好像缓存依赖也可以依赖于数据库中的表的,然后表修改缓存作废,但从这个问题来说,好像序列化跟数据库建表比较,像你说的一个比较直观简单点,这样就不用在数据库建表进行复杂查询了,呵呵
回复 点赞
黑手党维多 2014年01月18日
引用 3 楼 sp1234 的回复:
不知道区别! 请问:将这样一个xml存储在文件中不是一样吗,存在数据库中并且动用什么DataReader之类的方法效率高还是怎么地? 最后请问:你是干什么事情非要变态地强调“只许用一种方法,不许第二种”吗?
呵呵,我擦,都变态了,当然允许用第二种方法,如果只允许用一种方法那就是一棵树上吊死啊,我好像意识到什么逐渐从牛角尖上下来了
回复 点赞
以专业开发人员为伍 2014年01月18日
不知道区别! 请问:将这样一个xml存储在文件中不是一样吗,存在数据库中并且动用什么DataReader之类的方法效率高还是怎么地? 最后请问:你是干什么事情非要变态地强调“只许用一种方法,不许第二种”吗?
回复 点赞
黑手党维多 2014年01月18日
引用 1 楼 sp1234 的回复:
反过来问一下自己。
老师,我就是不明白这两者的区别啊,我觉得存储在数据库中,如果数据库在本地,两者差不多啊,不过数据库操作麻烦点,然后如果数据库部署在别的地方那就差距大了,是这样吗
回复 点赞
以专业开发人员为伍 2014年01月18日
反过来问一下自己。
回复 点赞
landry1234 2014年01月18日
呵呵 貌似用xml比较直观点,而且他有个缓存依赖,毕竟是站点信息到处都要用到,xml缓存依赖比数据库缓存灵活点,这个看情况,如果是多组数据肯定是数据库灵活,如果是单组数据二者皆可
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告