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

目前,如果接口也在同一个程序集中,上面的代码可以正常工作,但如果 IUserRepository 来自不同的程序集,它就会崩溃。

是否可以从两个不同的程序集进行自动注册?我在这里错过了什么吗?

4

1 回答 1

5

是的,可以定义自动注册,其中接口在不同的程序集中定义。我们这样做了,尽管我们使用了稍微不同的语法:

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

我不能说不同的 API 使用是否会产生影响,但我会假设它不会。相反,我猜您遇到错误的原因可能是包含该接口的程序集不可用。

检查 Fusion 是否可以从该应用程序加载类型。

于 2010-01-13T19:35:25.550 回答