(给DotNet加星标,提升.Net技能)
转自:MicroHeart! cnblogs.com/MicroHeart/p/10861366.html
一、依赖注入
引入依赖注入的目的是为了解耦和。说白了就是面向接口编程,通过调用接口的方法,而不直接实例化对象去调用。
这样做的好处就是如果添加了另一个种实现类,不需要修改之前代码,只需要修改注入的地方将实现类替换。上面的说的通过接口调用方法,实际上还是需要去实例化接口的实现类,只不过不需要我们手动new 构造实现类,而是交给如微软的DI、Autofac这些工具去构建实现类。我们只需要告诉它们,某个类是某个接口的实现类,当用到的时候,工具会自动通过构造函数实例化类。
二、.NET Core 中自带的DI
本来想写依赖注入源码的讲解的,看到网上有篇文章关于源码讲解的,很详细、清楚,就不再写了。
地址:http://www.cnblogs.com/bill-shooting/p/5540665.html。我在这里就说说使用吧。
依赖注入有三种生命周期,每种生命周期的注入方式大同小异,下面我以作用域生命周期举例,其他两种跟这个不同,我会特别说明。
下面为用到的两个服务。
public class UserService : IUserService