container.Register(
AllTypes.Pick().FromAssembly(typeof (UserRepository).Assembly)
.WithService.FirstInterface());
目前,如果接口也在同一个程序集中,上面的代码可以正常工作,但如果 IUserRepository 来自不同的程序集,它就会崩溃。
是否可以从两个不同的程序集进行自动注册?我在这里错过了什么吗?
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 使用是否会产生影响,但我会假设它不会。相反,我猜您遇到错误的原因可能是包含该接口的程序集不可用。
检查 Fusion 是否可以从该应用程序加载类型。