從Web服務請求數據並接收一個XML文件。不洪泛的服務好主意是緩存/存儲XML,所以當應用程序再次啓動時,它會使用緩存的XML 。收到的XML中的數據將每24小時更改一次,以便從舊請求應用程序傳遞過來的時間無論如何都必須創建新數據。C#最好的方式來保存XML數據
保持這些數據的最佳解決方案是什麼?
編輯:也許使用SQLite保留一些歷史?
從Web服務請求數據並接收一個XML文件。不洪泛的服務好主意是緩存/存儲XML,所以當應用程序再次啓動時,它會使用緩存的XML 。收到的XML中的數據將每24小時更改一次,以便從舊請求應用程序傳遞過來的時間無論如何都必須創建新數據。C#最好的方式來保存XML數據
保持這些數據的最佳解決方案是什麼?
編輯:也許使用SQLite保留一些歷史?
你可以只是把它流到文件:
/// 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));
是的,這可能是最常見的解決方案,但也許有一些更好的。(: – hs2d
我認爲你需要改進你的問題。有幾種方法可以做到這一點,但'最好'取決於你的要求。在你的場景中對你來說很重要嗎? – LoveMeSomeCode
如果我理解正確,你可能會考慮將數據加載到一個XmlDocument
或XDocument
,它在高速緩存中有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");
}
雖然這是一個很好的解決方案,但是在應用程序重新啓動之間,這並不會持久。 –
這個問題不是關於我所嘗試過的。問題是要得到一些想法,這將是一個很好的方法來做到這一點! – hs2d