Autofac容器快速入门
Autofac容器快速入门
Autofac 是一款.NET IoC 容器。它管理类之间的依赖关系, 从而使应用在规模及复杂性增长的情况下依然可以轻易地修改。它的实现方式是将常规的.net类当做 组件处理。
Autofac容器介绍
实现Autofac容器的步骤:
- 安装 NuGet 程序包: Autofac
- 创建一个 ContainerBuiler
- 注册接口和实现关系
- 通过 ContainerBuiler的Build方法,得到IContainer 容器
- 通过 IContainer容器获取实例
- 使用服务
实践
项目结构
Step1:新建一个WebApi应用程序。
Step2:新建一个接口,代码:
|
public interface ITestServiceA { void Show(); } |
Step3: 实现类,代码:
|
public class TestServiceA : ITestServiceA { public TestServiceA() { Console.WriteLine($"{this.GetType().Name} 被构造了..."); } public void Show() { Console.WriteLine($"This is a {this.GetType().Name} Instance..."); } } |
Step4: 添加Autofac依赖,代码:
|
|
Step5: 修改Startup中ConfigureServices方法,代码:
|
public void ConfigureServices(IServiceCollection services) { var builder = new ContainerBuilder(); builder.RegisterType var container = builder.Build(); // 获取服务实例 var testService = container.Resolve testService.Show(); services.AddControllers(); } |
Step6: 调试运行:
总结
在ConfigureServices中创建一个 ContainerBuiler,然后注册接口和实现关系,再通过 ContainerBuiler的Build方法得到IContainer容器,最后就可以通过 IContainer容器获取实例了。
注意的是在注册接口和实现关系时,接口和实现位置不能错。
1.依赖注入的目的是为了解耦。
2.不依赖于具体类,而依赖抽象类或者接口,这叫依赖倒置。
3.控制反转即IoC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。