2014-02-16 38 views
1

看了看,我还没有看到专门解决我的问题的答案。我明白,统一采用多参数ctor。但是,当参数属于同一类型或不同类型时,这会导致我出现一些奇怪的误解。有:使用统一的多个构造函数选择

public MyClass(string s1, string s2) 

public MyClass(string s1) 

public MyClass(Guid g1) 

为什么当我提供一个ResolverOverrideGuid一个ParameterOverride没有统一首次尝试双字符串参数?

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

最后,我该如何阻止Unity做到这一点?我必须使用一些“魔术”来设置ResolveRegisterType吗?

请有人可以清除我的头骨中发生的不协调....?

Regards

回答

0

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

Here是不错的文章。