首页 新闻 会员 周边 捐助

netcore数据保存

0
[已解决问题] 解决于 2022-07-05 09:45

netcore
每次请求控制器的某个方法,
控制器里的 Dictory字典里的数据都是空的(不会报错上一次请求时保存的数据)
这是为什么?我该用什么数据保存

形如
public dictory dic=new dictory <string,stirng>();
//方法
public string Test(){

}

信海哥的主页 信海哥 | 菜鸟二级 | 园豆:222
提问于:2022-07-04 12:00
< >
分享
最佳答案
0

首先,你要知道 每次请求 发生了什么。

如果控制器不是单例,每次请求都会new一个控制器实例,字典作为每个实例的一个成员,自然也会初始化(新new)

奖励园豆:5
talentzemin | 小虾三级 |园豆:775 | 2022-07-04 22:55
其他回答(4)
0

通常用数据库,如果只是临时数据,不需要持久化,可以可以静态成员变量或 IMemoryCache

dudu | 园豆:29885 (高人七级) | 2022-07-04 12:03

像这样
public static Dictionary<string, string> dic = new Dictionary<string, string>();

支持(0) 反对(0) 信海哥 | 园豆:222 (菜鸟二级) | 2022-07-04 12:20
0

提问前贴一下代码,你这样提问别人很难回答你的

godcloudy | 园豆:18 (初学一级) | 2022-07-04 12:15

支持(0) 反对(0) 信海哥 | 园豆:222 (菜鸟二级) | 2022-07-04 12:19

@信海哥: 额,你可以用静态static修饰一下Dictionary? 你这样的操作不太规范没像你这样写过

支持(0) 反对(0) godcloudy | 园豆:18 (初学一级) | 2022-07-04 12:29

@godcloudy: 那是要怎么写,举个例子?

支持(0) 反对(0) 信海哥 | 园豆:222 (菜鸟二级) | 2022-07-04 12:31
0

web请求本来就是无状态的,不会保存上一次请求的数据了。可以放了静态变量里,或者放了数据库、内存缓存里。或者自定义一个单例服务。

会长 | 园豆:12463 (专家六级) | 2022-07-04 17:49
0

Dictionary 是非线程安全的、建议换成线程安全的字段

IPeanut | 园豆:223 (菜鸟二级) | 2022-07-06 10:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册