使用单一的多个构造函数选择

时间:2014-02-16 22:38:39

标签: c# parameters constructor unity-container

看了之后我还没有看到专门解答我问题的答案。我知道Unity首先采用多参数ctor。但是,当参数类型相同或类型不同时,这会让我产生一些奇怪的误解。具有:

public MyClass(string s1, string s2)

public MyClass(string s1)

public MyClass(Guid g1)

为什么当我提供ResolverOverride ParameterOverride Guid时,Unity会先尝试双字符串参数吗?

当我在ParameterOverride中提供类似情况的单个字符串时,它是否仍然首先尝试双字符串参数 - 我没有明确告诉Unity吗?

最后,我如何阻止Unity这样做?我必须使用某些“魔法”设置ResolveRegisterType吗?

请有人清理我头骨中发生的不和谐......?

此致

1 个答案:

答案 0 :(得分:0)

首先,它选择具有InjectionConstructor属性的构造函数。然后是大多数参数计数的构造函数。

Here是关于它的好文章。