我在 Startup.cs 中添加了兩個服務,如下所示,
services.AddScoped(typeof(ICacheManager), typeof(RedisCacheManager));
services.AddScoped(typeof(ICacheManager), typeof(InMemoryCacheManager));
但是,當我ICacheManager在一個Controller
例如,我的 HomeController 如下:
private readonly ICacheManager _cacheManager;
public HomeController(ICacheManager cacheManager)
{
_cacheManager = cacheManager;
}
我該如何設定?
uj5u.com熱心網友回復:
你必須遵循 SOLID 原則之一
介面隔離原則:“許多特定于客戶端的介面優于一個通用介面。”
或者
public interface IRedisCacheManager: ICacheManager {}
public class RedisCacheManager: IRedisCacheManager
但是如果你不想遵循SOLID原則,你可以按照這個鏈接 如何在Asp.Net Core中注冊同一介面的多個實作?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/401359.html
上一篇:將具有一對多關系的SQL查詢轉換為具有父/子物件結構的ASP.NETCore/EntityFrameworkCore呼叫
