2023.11.3
autofac依赖注入的实践,IoC容器的使用。
使用IoC容器:1.应用程序无需主动new对象,而是描述对象应该如何被创建(构造方法、属性、方法参数等)。
//实例化是类用到的,A a = new A();当new的时候为对象分配内存,这个过程是对象的实例化。
2.应用程序不需要主动装配对象之间的依赖关系,而是描述需要哪个服务,IoC容器会帮你装配,被动接受装配。
3.主动变被动,是一种让服务消费者不直接依赖于服务提供者的组件设计方式,是一种减少类与类之间依赖的设计原则。
var builder = new ContainerBuilder();
builder.RegisterType<ConsoleOutput>().As<IOutput>();
builder.RegisterType<TodayWriter>().As<IDateWriter>();
Container = builder.Build();
//以接口的方式注入
var builder = new ContainerBuilder();//准备容器
builder.RegisterType<Doge>().As<IAnimal>();//映射对象
builder.RegisterType<Cat>().As<IAnimal>();
var container = builder.Build();//创建容器完毕
var dog = container.Resolve<IAnimal>();//通过IOC容器创建对象
var cat = container.Resolve<IAnimal>();
dog.SayH