【发布时间】:2017-08-29 21:53:22
【问题描述】:
我有以下代码:
private IMemoryCache _cache;
public HomeController(IMemoryCache memoryCache) : base() {
this._cache = memoryCache;
}
ASP.Net Core 正在通过以下方式处理IMemoryCache 实例的注入:
public void ConfigureServices(IServiceCollection services) {
services.AddMemoryCache();
}
它将_cache 字段标记为:
字段 HomeController._cache 从未分配给,并且将始终拥有 其默认值为 null
它不会导致任何错误,它只是在编辑器中分散注意力。
要让 Visual Studio 2017 相信我实际上是通过构造函数为该字段赋值的方法是什么?
代码(因为错误与它重叠):
编辑器显示错误:
在运行时显示被注入的有效实例:
编辑:
对于建议使用的cmets:
private IMemoryCache _cache = null;
...这没有区别,完全相同的结果。
【问题讨论】:
-
好的,你用 IMemoryCache 参数调用 HomeController 构造函数。
-
您可以在声明
private IMemoryCache _cache = null时分配 null 这应该会删除警告 -
我严重怀疑帖子中显示的代码会触发此警告。请确保您作为
HomeController的样本实际上是minimal reproducible example 的错误(它应该与DI 完全无关)。 -
@AlexeiLevenkov 截图添加,因为我也不会相信。
-
您是否定义了任何其他未分配
_cache的构造函数重载?
标签: c# asp.net-mvc asp.net-core