UnityContainer.Resolve相对于Activator.CreateInstance有什么优势?

5

我刚开始接触Unity,我还在想它有什么优势。

UnityContainer().Resolve<T>() 可以返回注册为泛型类型 T 的具体实例。

我认为我也可以使用 Activator.CreateInstance<T>()

Activator 是.NET Framework中的内置类,那么我想知道Unity的独特功能是什么?


4
阅读任何关于依赖注入的教程,你就会得到答案。 - Thomas Levesque
4
此外,Activator.CreateInstance 的速度较慢,且无法将接口映射到具体类型。它对于依赖注入是无用的。 - Thomas Levesque
1个回答

4
MSDN将Unity容器的优势总结如下:
  1. 简化对象创建,特别是对于分层对象结构和依赖关系的处理
  2. 抽象需求,这允许开发人员在运行时或配置中指定依赖关系,并简化横切关注点的管理
  3. 通过将组件配置延迟到容器中来增加灵活性
  4. 提供服务位置能力,这允许客户端存储或缓存容器
  5. 实例和类型拦截。
这里是链接

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接