有没有办法暗示Unity应该使用哪个构造函数?

时间:2011-10-10 20:57:04

标签: .net dependency-injection inversion-of-control unity-container constructor-injection

Unity InjectionConstructor在您需要调用特定构造函数时效果很好,因为您有非常具体的依赖关系(例如,外部依赖项,命名注册或未命名注册的任何组合),但它需要 all 要指定的参数。

有没有办法增加Unity的“查找和使用具有最多参数的构造函数”,“查找并使用具有最多参数的构造函数可以接受一个实例IX签名中的某处“?

1 个答案:

答案 0 :(得分:1)

马克的评论为答案提供了基础。即,AddPolicies

的实施
  • 必须找到一个构造函数,它匹配我传递给InjectionConstructor构造函数的所有值(显式)。有一些限制(例如,如果值为null或者它们与构造函数中的超类型匹配),并且
  • 对于剩余的(隐式),使用容器来解决它们。

我不是说这很好。我最终在其他地方使用RegisterInstance,混合参数需求消失了。但对于那些可能需要它的人来说,这是一个解决方案。