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序列化。。