我试图让ms unity将一个对象注入一个构造函数,并且由于该类具有多个构造函数和相同数量的参数而遇到问题。我知道你可以注释构造函数,但我不想这样做。我怎样才能统一使用正确的构造函数
我的构造函数是这样的: -
public JobsHandler(ICentralRepositoryContainer context)
public JobsHandler(ICentralRepositoryLifeTimehelper centralRepositoryLifeTimehelper)
我正在使用我发现的一些代码: -
uContainer.RegisterType<ICentralRepositoryContainer, Entities>().Configure<InjectedMembers>().
ConfigureInjectionFor<JobsHandler>(new InjectionConstructor());
但是在获得
类型CentralRepository.BusinessLogic.JobsHandler没有 带参数()
的构造函数
我猜这是因为我没有在injectconstructor对象中指定参数。我这样做了吗?
答案 0 :(得分:2)
我认为您需要解析ICentralRepositoryContainer并在InjectionConstructor中使用它
uContainer.RegisterType<ICentralRepositoryContainer, Entities>().Configure<InjectedMembers>().ConfigureInjectionFor<JobsHandler>(
new InjectionConstructor(new ResolvedParameter(typeof(ICentralRepositoryContainer)));
或者在指定构造函数时注册作业处理程序。
uContainer.RegisterType<ICentralRepositoryContainer, Entities>();
uContainer.RegisterType<JobsHandler>(new InjectionConstructor(new ResolvedParameter(typeof(ICentralRepositoryContainer))));
有关上述内容的更完整示例,请参阅此链接: