构造函数 DI - 字段永远不会分配给,并且将始终具有其默认值

Pat*_*ick 5 c# asp.net-mvc asp.net-core

我有以下代码:

private IMemoryCache _cache;

public HomeController(IMemoryCache memoryCache) : base() {    
   this._cache = memoryCache;    
}
Run Code Online (Sandbox Code Playgroud)

ASP.Net Core正在IMemoryCache通过以下方式处理实例的注入:

public void ConfigureServices(IServiceCollection services) {
   services.AddMemoryCache();
}
Run Code Online (Sandbox Code Playgroud)

它正在标记该_cache字段:

字段 HomeController._cache 永远不会分配给,并且将始终具有其默认值 null

它不会导致任何错误,它只是在编辑器中分散注意力。

有什么方法可以让 Visual Studio 2017 相信我实际上是通过构造函数为该字段分配一个值?

代码(因为错误与它重叠):

在此处输入图片说明

编辑器显示错误:

在此处输入图片说明

在运行时显示正在注入的有效实例:

在此处输入图片说明

编辑:

对于建议使用的评论:

private IMemoryCache _cache = null;
Run Code Online (Sandbox Code Playgroud)

...这没有区别,完全相同的结果。

Pat*_*ick 1

重新启动 Visual Studio 2017 并重新启动并没有解决该问题。

但是,当我安装环境重新加载时,我收到了 Visual Studio 2017 更新版本15.3.3的通知。

更新后重新启动 Visual Studio 后,这种情况不再发生。

我怀疑更新实际上做了与此问题相关的任何事情,更可能的是我的 VS 配置中的某些内容已关闭,而更新将其恢复原状。