在 ASP.NET 5/MVC 6 中使用 IDistributedCache 和 Redis - 类型或命名空间 'Microsoft.Caching' 不存在
Using IDistributedCache and Redis in ASP.NET 5/MVC 6 - type or namespace 'Microsoft.Caching' does not exist
我正在尝试在 MVC 6 中使用 Redis 缓存,但我无法构建我的项目。
我遵循了 https://github.com/aspnet/Caching/tree/dev/samples 中的示例 - 有一个 IDistributedCache 示例和一个 Redis 示例。但是,还不完全清楚,因为 Redis 示例不是 Web 应用程序。
我的 project.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.Caching.Distributed
和
kpm install Microsoft.Framework.Caching.Redis
两个命令都有效并返回了 OK。
在我的初创公司中,我正在尝试以下操作:
services.AddSingleton<IMemoryCache, MemoryCache>();
services.AddSingleton<IDistributedCache, RedisCache>();
尝试构建或 运行 时,给出的错误是:
Startup.cs(10,27): error CS0234: The type or namespace name 'Caching'
does not exist in the namespace 'Microsoft.Framework' (are you missing
an assembly reference?) Startup.cs(11,27): error CS0234: The type or
namespace name 'Caching' does not exist in the namespace
'Microsoft.Framework' (are you missing an assembly reference?)
Startup.cs(25,35): error CS0246: The type or namespace name
'IDistributedCache' could not be found (are you missing a using
directive or an assembly reference?) Startup.cs(25,54): error CS0246:
The type or namespace name 'RedisCache' could not be found (are you
missing a using directive or an assembly reference?)
现在显然我的参考文献有误 - 但正确的参考文献是什么?我是直接从示例中复制名称空间吗?我尝试切换到 Microsoft.Cache.Distributed,但也没有用(并且与 github 冲突)
我觉得这与没有正确的 K 版本有关,也许这就是出路 - 升级到最新版本。 Framework.Cache.Memory 和 Framework.Cache.Distributed 之间存在不匹配,我看到 github 与名称空间更改相关的评论。
如果有人能指出这个迷宫的出路,不胜感激。
The below answer applies for 1.0.0-beta4 release of caching library which corresponds to here: https://github.com/aspnet/Caching/tree/1.0.0-beta4
IMemoryCache
is under Microsoft.Framework.Caching.Memory
namespace and 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
。
我正在尝试在 MVC 6 中使用 Redis 缓存,但我无法构建我的项目。
我遵循了 https://github.com/aspnet/Caching/tree/dev/samples 中的示例 - 有一个 IDistributedCache 示例和一个 Redis 示例。但是,还不完全清楚,因为 Redis 示例不是 Web 应用程序。
我的 project.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.Caching.Distributed
和
kpm install Microsoft.Framework.Caching.Redis
两个命令都有效并返回了 OK。
在我的初创公司中,我正在尝试以下操作:
services.AddSingleton<IMemoryCache, MemoryCache>();
services.AddSingleton<IDistributedCache, RedisCache>();
尝试构建或 运行 时,给出的错误是:
Startup.cs(10,27): error CS0234: The type or namespace name 'Caching' does not exist in the namespace 'Microsoft.Framework' (are you missing an assembly reference?) Startup.cs(11,27): error CS0234: The type or namespace name 'Caching' does not exist in the namespace 'Microsoft.Framework' (are you missing an assembly reference?) Startup.cs(25,35): error CS0246: The type or namespace name 'IDistributedCache' could not be found (are you missing a using directive or an assembly reference?) Startup.cs(25,54): error CS0246: The type or namespace name 'RedisCache' could not be found (are you missing a using directive or an assembly reference?)
现在显然我的参考文献有误 - 但正确的参考文献是什么?我是直接从示例中复制名称空间吗?我尝试切换到 Microsoft.Cache.Distributed,但也没有用(并且与 github 冲突)
我觉得这与没有正确的 K 版本有关,也许这就是出路 - 升级到最新版本。 Framework.Cache.Memory 和 Framework.Cache.Distributed 之间存在不匹配,我看到 github 与名称空间更改相关的评论。
如果有人能指出这个迷宫的出路,不胜感激。
The below answer applies for 1.0.0-beta4 release of caching library which corresponds to here: https://github.com/aspnet/Caching/tree/1.0.0-beta4
IMemoryCache
is under Microsoft.Framework.Caching.Memory
namespace and 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
。