本篇将介绍Asp.Net Core中一个非常重要的特性:依赖注入,并展示其简单用法。
Dependency Injection:又称依赖注入,简称DI。在以前的开发方式中,层与层之间、类与类之间都是通过new一个对方的实例进行相互调用,这样在开发过程中有一个好处,可以清晰的知道在使用哪个具体的实现。随着软件体积越来越庞大,逻辑越来越复杂,当需要更换实现方式,或者依赖第三方系统的某些接口时,这种相互之间持有具体实现的方式不再合适。为了应对这种情况,就要采用契约式编程:相互之间依赖于规定好的契约(接口),不依赖于具体的实现。这样带来的好处是相互之间的依赖变得非常简单,又称松耦合。至于契约和具体实现的映射关系,则会通过配置的方式在程序启动时由运行时确定下来。这就会用到DI。
第二部分、DI的注册与注入
借用这个系列之前的框架结构,添加如下接口和实现类
1 using System.Collections.Generic; 2 using WebApiFrame.Models; 3 4 namespace WebApiFrame.Repositories 5 { 6 public interface IUserRepository 7 { 8 IEnumerable<User> GetAll(); 9 10 User GetById(int id); 11 } 12 }