Netcore內置IOC容器,services.AddSingleton<>,
就是往內置IOC容器里配置一個單例,將接口跟實現映射在一起,
以后每次使用構造函數注入這個IProductRepository接口,
都會獲得這個單例對象! 不需要new ProductRepository()
DI --注入, IOC就是對象的容器, 配合起來就是依賴注入,按軟件設計原則來說,這叫控制反轉的作用
1.public interface HomeIBLL
2.public class HomeBLL : HomeIBLL
{
private readonly HomeIRepository _homeIRepository;
public HomeBLL(HomeIRepository homeIRepository)
{
_homeIRepository = homeIRepository;
}
3.public interface HomeIRepository
4.public class HomeRepository : HomeIRepository
5.services.AddSingleton<HomeIBLL, HomeBLL>();
services.AddSingleton<HomeIRepository, HomeRepository>();
6.private readonly HomeIBLL _homeIBLL;
public HomeController(ILogger<HomeController> logger, HomeIBLL homeIBLL)
{
_logger = logger;
_homeIBLL = homeIBLL;
}