container.Register(
        AllTypes.Pick().FromAssembly(typeof (UserRepository).Assembly)
            .WithService.FirstInterface());

目前上面的代码将正常工作,如果该接口,可以在相同的组件,但它会炸毁如果IUserRepository是从不同的组件。

时自动配准来自两个不同的组件可能?我失去了一些东西在这里?

有帮助吗?

解决方案

是,这是可能的,以限定自动注册其中接口在不同的组件来定义。我们这样做,虽然我们使用一个稍微不同的语法:

container.Register(AllTypes
    .FromAssemblyContaining<ConfigurationService>()
    .Where(t => t.Name.EndsWith("Service", StringComparison.Ordinal))
    .WithService
    .FirstInterface()
    .Configure(reg => reg.LifeStyle.PerWebRequest));

我不能说,如果不同的API使用有差别,但我认为事实并非如此。相反,我猜您遇到的错误的原因是,也许包含接口组件不可用。

检查是否融合可以从该应用程序加载所有类型。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top