Я новичок в использовании Autofac, и я хочу упростить регистрацию. Установка моих запросов. т.е.Как упростить регистрацию компонентов с помощью Autofac
Bootstrapper.Builder.RegisterType<TableOneQuery>().As<ITableOneQuery>().InstancePerLifetimeScope();
Bootstrapper.Builder.RegisterType<TableTwoQuery>().As<ITableTwoQuery>().InstancePerLifetimeScope();
Bootstrapper.Builder.RegisterType<TableThreeQuery>().As<ITableThreeQuery>().InstancePerLifetimeScope();
Bootstrapper.Builder.RegisterType<TableFourQuery>().As<ITableFourQuery>().InstancePerLifetimeScope();
Bootstrapper.Builder.RegisterType<TableFiveQuery>().As<IFiveOneQuery>().InstancePerLifetimeScope();
Запросы одного и того же типа, и они следуют этому соглашению
public class TableOneQuery : ITableOneQuery
{
private readonly IGenericRepository<TableOne> _tableOneRepository;
public TableOneQuery(
IGenericRepository<TableOne> tableOneRepository)
{
_tableOneRepository = tableOneRepository;
}
public TableOneViewModel Get(int id)
{
.....
}
public IList<TableOneViewModel> GetAll()
{
.....
}
}
Есть ли способ просто зарегистрировать один раз для такого типа?
BTW Bootstrapper
является Autofac.ContainerBuilder
Похоже, было бы разумнее создать родительский интерфейс для каждого из ваших интерфейсов запросов и использовать его для открытой общей регистрации. –
Возможно, имеет смысл определить одну общую абстракцию по запросам, например, пояснил [здесь] (https://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=92). – Steven