2011-10-06 88 views
0

从Web服务请求数据并接收一个XML文件。不洪泛的服务好主意是缓存/存储XML,所以当应用程序再次启动时,它会使用缓存的XML 。收到的XML中的数据将每24小时更改一次,以便从旧请求应用程序传递过来的时间无论如何都必须创建新数据。C#最好的方式来保存XML数据

保持这些数据的最佳解决方案是什么?

编辑:也许使用SQLite保留一些历史?

+0

这个问题不是关于我所尝试过的。问题是要得到一些想法,这将是一个很好的方法来做到这一点! – hs2d

回答

1

你可以只是把它流到文件:

/// saving it : 
System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); 
System.IO.File.WriteAllText(filename, doc.Value); 

/// loading it back in : 
System.Xml.XmlDocument xdoc = new System.Xml.XmlDocument(); 
xdoc.LoadXml(System.IO.File.ReadAllText(filename)); 
+0

是的,这可能是最常见的解决方案,但也许有一些更好的。(: – hs2d

+1

我认为你需要改进你的问题。有几种方法可以做到这一点,但'最好'取决于你的要求。在你的场景中对你来说很重要吗? – LoveMeSomeCode

0

如果我理解正确,你可能会考虑将数据加载到一个XmlDocumentXDocument,它在高速缓存中有CacheDependency存储:

XmlDocument xDoc = new XmlDocument(); 

if (Cache.Get("MenuData") == null) 
{ 
    xDoc.Load(Server.MapPath("/MenuData.xml")); 
    Cache.Insert("SiteNav", xDoc, new CacheDependency(Server.MapPath("/MenuData.xml"))); 
} 
else 
{ 
    xDoc = (XmlDocument)HttpContext.Current.Cache.Get("MenuData"); 
} 
+0

虽然这是一个很好的解决方案,但是在应用程序重新启动之间,这并不会持久。 –

相关问题