Если вы хотите внедрить конкретную реализацию с помощью Autofac, вы можете просто внедрить сам класс, но вам нужно будет сделать его внедряемым отдельно, добавив AsSelf
к определению регистрации:
builder.RegisterType<AgentRepository>().AsSelf().As<IRepository>();
builder.RegisterType<CustomerRepository>().AsSelf().As<IRepository>().Named<IRepository>("Customer");
Затем вы можете ввести его напрямую:
public class ToDoFacade : IFacade
{
public ToDoFacade(IHost host, AgentRepository agentRepository, CustomerRepository customerRepository)
{
}
}
Также, если вы хотите внедрить все IRepository
реализации, вы можете просто сделать:
public ToDoFacade(IHost host, IEnumerable<IRepository> repositories)
{
}