我有以下代碼:構造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