繁体   English   中英

从Xml文件读取的最有效和缓存的方法

[英]The Most efficient and cached way to read from Xml files

我有一个xml文件,将从源代码中读取多次。 我想知道一种有效的方式,在[应用程序启动期间]我只能读取一次xml文件,然后缓存其内容,以便我可以高效,快速地重用它。

我正在使用C#4。请提出有关有效缓存和读取的最佳实践。

编辑

找到此资源: CodeProject文章

我已将xml文件加载到XmlDocument中,并使用企业库将其缓存如下,

XmlDocument xdoc = new XmlDocument();
xdoc.Load("MyXmlFile.XML");
FileDependency fileDependency=new FileDependency("MyXmlFile.XML");
cacheManager.Add("XConfig", xdoc, CacheItemPriority.Normal, null, fileDependency);

要读取XML是XmlReader,请看: 解析Xml的最有效方法

并使用XmlDocument对象进行缓存,并将其保存在内存中: C#存放xml数据的最佳方法

要同时使用两者,请查看: http : //msdn.microsoft.com/zh-cn/library/a8ta6tz4.aspx

XmlDocument的问题是读取而不是操作,最好的操作方法是Linq to Xml,它也具有良好的性能,但不要击败XmlReader,请看一下以下比较: http://www.nearinfinity。 com / blogs / joe_ferner / performance_linq_to_sql_vs.html

此代码会将文档缓存在静态共享实例中。 这段代码不是线程安全的,您没有说这是否是必需的:

private static XDocument _mydoc;
public static XDocument MyDoc 
{
   get 
   {
      return _mydoc ?? (_mydoc = XDocument.Parse("WellKnownXmlFile.xml");
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM