ms统一和多个构造函数

时间:2011-11-01 14:00:24

标签: c# unity-container

我试图让ms unity将一个对象注入一个构造函数,并且由于该类具有多个构造函数和相同数量的参数而遇到问题。我知道你可以注释构造函数,但我不想这样做。我怎样才能统一使用正确的构造函数

我的构造函数是这样的: -

  public JobsHandler(ICentralRepositoryContainer context)
  public JobsHandler(ICentralRepositoryLifeTimehelper centralRepositoryLifeTimehelper)

我正在使用我发现的一些代码: -

  uContainer.RegisterType<ICentralRepositoryContainer, Entities>().Configure<InjectedMembers>().
            ConfigureInjectionFor<JobsHandler>(new InjectionConstructor());

但是在获得

  

类型CentralRepository.BusinessLogic.JobsHandler没有   带参数()

的构造函数

我猜这是因为我没有在injectconstructor对象中指定参数。我这样做了吗?

1 个答案:

答案 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))));

有关上述内容的更完整示例,请参阅此链接:

http://msdn.microsoft.com/en-us/library/ff650036.aspx