C# 使用unity选择多个构造函数

C# 使用unity选择多个构造函数,c#,parameters,constructor,unity-container,C#,Parameters,Constructor,Unity Container,看了之后,我还没有看到一个具体解决我问题的答案。我知道unity首先考虑多参数的ctor。然而,当参数类型相同或不同时,这会导致我产生一些奇怪的误解。具有: public MyClass(string s1, string s2) public MyClass(string s1) public MyClass(Guid g1) 为什么当我提供带有Guid的ParameterOverride的ResolverOverride时,Unity会先尝试双字符串参数 当我在ParameterOve

看了之后,我还没有看到一个具体解决我问题的答案。我知道unity首先考虑多参数的ctor。然而,当参数类型相同或不同时,这会导致我产生一些奇怪的误解。具有:

public MyClass(string s1, string s2)

public MyClass(string s1)

public MyClass(Guid g1)
为什么当我提供带有
Guid
ParameterOverride
ResolverOverride
时,Unity会先尝试双字符串参数

当我在ParameterOverride中提供了一个类似的情况,并且只有一个字符串时,它是否仍然会首先尝试使用双字符串参数?我没有明确地告诉Unity吗

最后,我如何阻止Unity这样做?我必须使用一些“魔法”设置
解析
注册表类型

有人能帮我清理一下脑袋里的不和谐吗


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

这是一篇关于它的好文章