在ASP中使用IDistributedCache和Redis.. NET 5/MVC 6 -类型或命名空间'不存
本文关键字:类型 命名空间 不存 MVC ASP IDistributedCache NET Redis | 更新日期: 2023-09-27 17:49:48
我正在尝试在MVC 6中使用Redis缓存,但我不能让我的项目构建。
我遵循了https://github.com/aspnet/Caching/tree/dev/samples上的例子-有一个IDistributedCache样本和一个Redis样本。然而,这并不完全清楚,因为Redis示例不是一个web应用程序。
我有这个在我的项目。json依赖性:
"Microsoft.Framework.Cache.Memory": "1.0.0-beta3",
"Microsoft.Framework.Caching.Distributed": "1.0.0-*",
"Microsoft.Framework.Caching.Redis": "1.0.0-*",
我用这个来获取我的包:
kpm install microsoft . framework . cache . distributed
和
kpm install microsoft . framework . cache . redis
两个命令都工作并返回OK。
在我的启动中,我正在尝试以下内容:
services.AddSingleton<IMemoryCache, MemoryCache>();
services.AddSingleton<IDistributedCache, RedisCache>();
当尝试构建或运行时,给出的错误是:
Startup.cs(10,27):错误CS0234:类型或命名空间名称为"Caching"在命名空间"Microsoft"中不存在。框架(你错过了吗?程序集引用?)Startup.cs(11,27):错误CS0234:类型或命名空间名称"Caching"不存在"微软。框架(您是否缺少程序集引用?)Startup.cs(25,35):错误CS0246:类型或命名空间名称找不到"IDistributedCache"(您是否错过了使用。指令还是程序集引用?)Startup.cs(25,54):错误CS0246:找不到类型或命名空间名称"RedisCache"缺少using指令或程序集引用?)
现在显然我有错误的参考-但什么是正确的参考?我直接从示例中复制名称空间?我尝试切换到Microsoft.Cache.Distributed,这也不起作用(并与github冲突)
我有一种感觉,这与没有正确的K版本有关,也许这是解决办法-升级到最新版本。在framework_cache . memory和framework_cache . distributed之间有一个不匹配,我看到github关于命名空间更改的注释。
如果有人能指出走出这个迷宫的路,我将不胜感激。
下面的答案适用于1.0.0-beta4版本的缓存库,对应于这里:https://github.com/aspnet/Caching/tree/1.0.0-beta4
IMemoryCache
在Microsoft.Framework.Caching.Memory
命名空间下,IDistributedCache
在Microsoft.Framework.Caching.Distributed
命名空间下。
依赖项是这样的:
"dependencies": {
"Microsoft.Framework.Caching.Memory": "1.0.0-beta4",
"Microsoft.Framework.Caching.Distributed": "1.0.0-beta4",
"Microsoft.Framework.Caching.Redis": "1.0.0-beta4"
}
那么Microsoft.Framework.Cache.Memory
就是Microsoft.Framework.Caching.Memory