C# 在容器创建中将无参数构造函数设置为注入构造函数

C# 在容器创建中将无参数构造函数设置为注入构造函数,c#,unity-container,ioc-container,C#,Unity Container,Ioc Container,我有一个有两个老师的班。一个无参数,一个有参数。 Unity将默认采用gready方法,并选择最后一个ctor 如何定义要使用的ctor(我希望无参数),而不在类中添加对Unity的依赖?我认为在我的容器创建中可以做到这一点,但我不知道如何做到 当前我的注册条目如下所示: container.RegisterType<IConfigurationService, SqlConfigurationService>() container.RegisterType<IConfig

我有一个有两个老师的班。一个无参数,一个有参数。
Unity将默认采用gready方法,并选择最后一个ctor

如何定义要使用的ctor(我希望无参数),而不在类中添加对Unity的依赖?我认为在我的容器创建中可以做到这一点,但我不知道如何做到

当前我的注册条目如下所示:

container.RegisterType<IConfigurationService, SqlConfigurationService>()
container.RegisterType<IConfigurationService, SqlConfigurationService>(
    new InjectionConstructor())

我认为您还可以在注册时传入InjectionConstructor(包括参数的
ResolvedParameter
s)。你试过了吗?

我现在附近没有Unity,但据我回忆,你可以这样做:

container.RegisterType<IConfigurationService, SqlConfigurationService>()
container.RegisterType<IConfigurationService, SqlConfigurationService>(
    new InjectionConstructor())
container.RegisterType(
新的InjectionConstructor())

您可以将InjectionConstructor属性应用于要使用的构造函数。但是,这确实有将一些容器配置从中心位置移开的缺点。

我不想在我的实际类中添加任何依赖项(参考OP)谢谢:)你是否有机会也知道如何解决我的额外问题(OP的底部)?在看了一点API文档后的总体猜测:
container.RegisterType(新的注入构造函数(新的ResolvedParameter());