Unity Batch Registre-se por convenção
Estou tentando fazer o equivalente ao seguinte código Autofac no Unity IoC.
builder.RegisterAssemblyTypes(typeof (DataRepository<>).Assembly)
.Where(t => t.Name.EndsWith("Repository"))
.AsImplementedInterfaces();
Isso basicamente substitui o registro individual do seguinte:
DataSourceDataRepository : DataRepository<DataSource>, IDataSourceDataRepository
Para maior clareza: isso registra todos os meus tipos de repositório como suas interfaces implementadas; portanto, quando eu injeto IDataSourceDataRepository, obtenho um DataSourceDataRepository, etc.
Na unidade, fui incapaz de ir além de fazer um de cada vez manualmente. O código de teste mostra apenas uma falha no registro.
Minha tentativa:
container.RegisterType<RepositoryConnection>(new HierarchicalLifetimeManager());
container.RegisterTypes(
AllClasses.FromLoadedAssemblies().Where(t => typeof(IRepository).IsAssignableFrom(t)), getLifetimeManager: t => new TransientLifetimeManager(),
getInjectionMembers: t=> new InjectionConstructor[] {new InjectionConstructor(typeof(RepositoryConnection)) } );