我有以下代码:构造DI - 现场永远不会分配给,永远有它的默认值
public void ConfigureServices(IServiceCollection services) {
services.AddMemoryCache();
}
:
private IMemoryCache _cache;
public HomeController(IMemoryCache memoryCache) : base() {
this._cache = memoryCache;
}
ASP.Net Core
经处理IMemoryCache
实例的注入它正在标记_cache
字段:
Field HomeController._cache is never assigned to, and will always have its default value null
它不是causi如果有任何错误,只是在编辑器中分散注意力。
要说服Visual Studio 2017,我实际上是通过构造函数为这个字段赋值,那么有什么办法呢?
代码(因为错误重叠的话):
随着显示错误的编辑器:
在运行时显示的有效实例被注入:
编辑:
对于建议使用意见:
private IMemoryCache _cache = null;
...这没有什么区别,同样确切的结果。
好的,您正在使用IMemoryCache参数调用HomeController构造函数。 – mybirthname
如果声明为'private IMemoryCache _cache = null',则可以分配空值,这应该删除警告 –
@mybirthname .Net Core会自动处理它。我已经验证了正在调用构造函数,该参数有一个有效的非空实例,并且使用this._cache的MVC操作方法中的缓存代码也按预期工作。 – Patrick