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

时间:2012-02-08 13:22:21

标签: c# xml caching

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

我正在使用C#4。请建议有效缓存和阅读的最佳实践。

修改

找到此资源:CodeProject Article

我已将xml文件加载到XmlDocument中,并使用Enterprise Library对其进行缓存,如下所示,

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

2 个答案:

答案 0 :(得分:2)

要阅读xml是XmlReader,请查看:The most efficient way to parse Xml

缓存使用XmlDocument对象,并将其保存在内存中:C# Best way to hold xml data

要同时使用它们,请查看:http://msdn.microsoft.com/en-us/library/a8ta6tz4.aspx

XmlDocument的问题是阅读,而不是操纵,最好的操作方法是Linq to Xml,它也有很好的性能,但是没有击败XmlReader,看看这个比较:http://www.nearinfinity.com/blogs/joe_ferner/performance_linq_to_sql_vs.html

答案 1 :(得分:2)

此代码将文档缓存在静态共享实例中。这段代码不是线程安全的,你没有说这是否是一个要求:

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