2017-06-01 76 views
0

大家都知道,我們只需使用保存像會話和緩存數據在ASP MVC

Session["kurd"]=""; 

Cahce.Insert(...)

及其在內存中保存的數據; 其保存數據沒有序列化或任何這樣的事情,所以我們可以簡單地保存所有內容

但它不是可靠的方式來保存數據;

所以你們可能會說,你可以在數據庫或文件,但在我的情況 保存它不能做,因爲我的數據它不是序列化的,並且我可以 只能將其保存在緩存會議viewdataviewbage ,...因爲它不需要先序列化數據;因爲在會議上,高速緩存不可靠性 ,......我想辦法,可以節省 數據就像緩存和會話,無...連載數據

的人都知道,我們怎麼可以做這種事(除數據)在磁盤 我的意思是保存硬盤上的數據就像會話在內存上做的一樣?

更新:

的數據類型是類的實例圖片中包含的HttpClient,httpclienthandeler,deviceinfo,...

enter image description here

更新:

沒有人知道它有多美妙 如何將數據保存在硬盤中會話在內存中做了什麼 沒有問題沒有序列化沒有bs,只是保存很容易

+0

保存在文本文件或這樣的嗎? – User3250

+0

當你說它不可序列化時,你試圖存儲什麼數據?你能發表例子嗎? – Wheels73

+0

@ wheels73坦克爲您的答案我更新它 –

回答

0

我解決了這個問題 HttpClient的不能被序列化,但 我發現,在HttpClient的唯一的事情,我們應該在此保存螺紋 是「的CookieContainer」 所以serlize和deserilze這樣

var formatter = new SoapFormatter(); 
string file = "..\cookies.dat"; 
// 
using (Stream s = File.Create (file)) 
    formatter.Serialize(s, cookies);        
// 
CookieContainer retrievedCookies = null; 
using (Stream s = File.OpenRead (file)) 
    retrievedCookies = (CookieContainer) formatter.Deserialize(s); 

,所以我序列化並保存,然後新的使用我創造新的HttpClient並分配CookieContainerHttpClent。的CookieContainer

這個問題是爲Instasharper

2

以編程方式,您可以使用ObjectDumper

或者,如果你正在調試,您可以使用Visual Studio的擴展名爲Object Exporter

+0

不工作在這個問題:(無論如何坦克 –