【发布时间】:2019-06-15 22:46:03
【问题描述】:
如何在依赖注入中添加 IMemoryCache 我想使用它,但是当我在代码中添加它时,如下所示,它在 startup.cs 文件中显示错误如何在 Startup.cs 中添加 IMemoryCache 的参数
Startup.cs 错误
错误 CS0542 'HMACAuthenticationAttribute': 成员名称不能是 和它们的封闭类型一样
public class HMACAuthenticationAttribute : Attribute, IAuthorizationFilter
{
private IMemoryCache _cache;
public HMACAuthenticationAttribute(IMemoryCache cache)
{
_cache = cache;
}
}
services.AddMvc(options => options.Filters.Add(new HMACAuthenticationAttribute())).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
【问题讨论】:
-
获得该错误的唯一方法是,如果您在此类上有一个名为
HMACAuthenticationAttribute的字段或属性。发布的代码没有这样的成员,所以我只能假设您已经编辑了部分代码,这当然会掩盖问题所在。发布真正的代码,或者只是阅读异常告诉您的内容并修复它。这很简单。 -
另外,对于它的价值,你不能注入属性。但是,您实际上并没有将其用作属性,所以没关系。因此,您不应该从
Attribute继承,因为它既不必要又具有误导性:如果您实际上确实 将其用作属性,它将失败,因为_cache将是未定义的。
标签: asp.net-core-mvc asp.net-core-2.0 asp.net-core-webapi