Я пытаюсь понять шаблон делегата factory с Autofac. Я знаю, как реализовать factory с помощью регистрации IIndex < > с Keyed(), которая здесь хорошо объясняется: Настройка делегата Autofac factory, который определен в абстрактном классе
Я хотел бы знать, могу ли я создать factory с помощью Func < > , и как бы я сделал регистрацию для следующего примера:
public enum Service
{
Foo,
Bar
}
public interface FooService : IService
{
ServiceMethod();
}
public interface BarService : IService
{
ServiceMethod();
}
public class FooBarClient
{
private readonly IService service;
public FooBarClient(Func<Service, IService> service)
{
this.service = service(Service.Foo);
}
public void Process()
{
service.ServiceMethod(); // call the foo service.
}
}