C# 在asp mvc中保存会话和缓存等数据

C# 在asp mvc中保存会话和缓存等数据,c#,asp.net-mvc,database,session,caching,C#,Asp.net Mvc,Database,Session,Caching,大家都知道,我们只是使用 Session["kurd"]=""; 或 Cahce.Insert(…) 并将其数据保存在内存中; 它不需要序列化或任何类似的东西来保存数据,所以我们可以简单地保存所有内容 但它不是保存数据的可靠方式 所以,你们可以说你们可以保存在数据库或文件中,但在我的情况下 这是不可能的,因为我的数据是不可序列化的,我可以 仅将其保存在缓存,会话,查看数据,查看页面 ,... 因为它不需要先序列化数据;因为 在会话、缓存和,。。。我想要一种可以省钱的方法 数据就像缓存和会话,。

大家都知道,我们只是使用

Session["kurd"]="";

Cahce.Insert(…)

并将其数据保存在内存中; 它不需要序列化或任何类似的东西来保存数据,所以我们可以简单地保存所有内容

但它不是保存数据的可靠方式

所以,你们可以说你们可以保存在数据库或文件中,但在我的情况下 这是不可能的,因为我的数据是不可序列化的,我可以 仅将其保存在缓存会话查看数据查看页面 ,... 因为它不需要先序列化数据;因为 在会话、缓存和,。。。我想要一种可以省钱的方法 数据就像缓存和会话,。。。没有序列化数据

任何人都知道我们如何在磁盘上做这样的事情(保存数据) 我的意思是把数据保存在硬盘上就像会话保存在内存上一样

更新:

数据类型是图片中包含httpclient、HttpClientHandler、deviceinfo等的类的实例

更新:

没人知道这是多么美妙啊 如何像会话在内存中所做的那样将数据保存在硬盘中
毫无疑问,无需序列化,无需bs,只需以编程方式保存即可


或者,如果正在调试,则可以通过编程方式使用名为

的Visual Studio扩展

或者,如果您正在调试,可以使用名为

的Visual Studio扩展来解决此问题 无法序列化HttpClient,但 我发现HttpClient中唯一应该保存在这个线程中的东西 是“CookieContainer” 因此,像这样进行序列化和反序列化

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,并将CookieContainer分配给HttpClent.CookieContainer

这个问题是为Instasharper解决的,我解决了这个问题 无法序列化HttpClient,但 我发现HttpClient中唯一应该保存在这个线程中的东西 是“CookieContainer” 因此,像这样进行序列化和反序列化

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,并将CookieContainer分配给HttpClent.CookieContainer


此问题适用于Instasharper

是否保存在文本文件中?当您说它不可序列化时,您要存储哪些数据?你能举个例子吗?@wheels73坦克为你的答案我更新it@user3250我想以任何方式将其保存在硬盘中,或者保存在ram中(长时间如20天)@ShoppingCenterCNC-看看这个答案。这通过创建自定义类包装httpClient等来使用Json序列化。。是否保存在文本文件中?当您说它不可序列化时,您要存储哪些数据?你能举个例子吗?@wheels73坦克为你的答案我更新it@user3250我想以任何方式将其保存在硬盘中,或者保存在ram中(长时间如20天)@ShoppingCenterCNC-看看这个答案。这通过创建自定义类包装httpClient等来使用Json序列化。。