RegisterFactory(InjectionFactory)的应用
Unity是一个.NET Framework用于依赖注入的容器。依赖注入一般分为三个阶段:Register, Resolve和Dispose。Unity支持三种方式的Register:
- Instance registration
- Type registration
- Factory registration
那这三种方式分别用于什么场景呢?简单来说,Instance registration和Type
registration较为常见,直接通过ResolvedParameter解析依赖的对象,Factory
registration更灵活,可以通过调用方法创建对象。举个例子,如果注入对象所依赖的参数是一个List<T>
或Dictionary<T1, T2>
,而T又是自定义的类,那么就必须使用Factory
registration。本文主要介绍的就是如何解析一个自定义类的List或Dictionary。