Appearance
依赖注入
构造函数注入
属性注入
c#
[RequiredService]
public ILogger<TestController> Logger { get; set; }IocManager
由于系统属于微核架构,所有注入的容器包括:主容器(根容器和域容器)和插件容器
根容器获取:IocManager.Instance.RootSerivces
根容器是系统启动后的ApplicationServices,在启动主机中注入的服务在此保存。 仅提供全局的单例服务和瞬时服务。
当前域容器:IocManager.Instance.HttpRequestServices
域容器是当请求访问后,取值HttpContext.RequestServices 提供全局的Scope服务。
插件容器:IocManager.Instance.PackageServices
插件容器是每个功能包或者插件加载时创建的容器,在插件生命周期OnMounted后创建。 提供插件内 IAppService 和插件内使用 OnConfigureServices 注入的服务。 当插件内的Controller创建时,也使用该容器进行注入服务。
IRef
IRef是注入到主容器里的一个泛型类,可以通过该泛型类获取子容器的对象,通过该对象的Value取值。