IOC控制反转:传统开发,上端依赖(调用/指定)下端对象,会有依赖 把对下端对象的依赖转移到第三方容器(工厂+配置文件+反射)
能够程序拥有更好的扩展性
DI依赖注入:依赖注入就是能做到构造某个对象时,将依赖的对象自动初始化并注入
三种注入方式:构造函数注入–属性注入–方法注入(按时间顺序)
构造函数注入用的最多,默认找参数最多的构造函数,可以不用特性,可以去掉对容器的依赖
第一步:使用Unity需要nuget引入6个包
- Unity
- Unity.Abstractions
- Unity.Configuration
- Unity.Container
- Unity.Interception
- Unity.Interception.Configuration
第二步:固定写法
//配置UnityContainer
IUnityContainer container = new UnityContainer();
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "CfgFiles\\Unity.Config");
Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
UnityConfigurationSection configSection = (UnityConfigurati