所以我想創建一些訪問外部API的服務,並且我想緩存來自該服務內部的API的常見請求,這取決於3個其他服務,但是我想給它自己的實例緩存,MemoryDistributedCache稍後可能被別的東西aspnetcore的方式是否正確?服務和依賴注入
services.AddSingleton<ISomeApi, SomeApi>(provider => new SomeApi(
Configuration.Get<Options>(),
new MemoryDistributedCache(new MemoryCache(new MemoryCacheOptions())),
provider.GetService<ILogger<SomeApi>>()
));
現在從我的控制器
我可以通過DI訪問API改變,它很好地工作,但林不知道,如果它的某種反模式,或者如果有更好的方法做到這一點
我的意思是真正的問題是分離內部緩存,請求 IDistributedMemory從一個服務w應該給我相同的對象,好像我從另一個服務請求它們,他們必須分開
爲什麼它需要成爲單獨的緩存?另外,請注意:如果服務未找到,GetService()返回null。所以如果你的服務真的需要記錄器,使用'GetRequiredService ()'。 –
juunas
可以說一個緩存由一個數據庫系統支持,第二個緩存由另一個數據庫系統支持 – gdpm