2017-06-01 59 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

不工作在这个问题:(无论如何坦克 –