Autofac でデリゲート ファクトリ パターンを理解しようとしています。Keyed() 登録で IIndex<> を使用してファクトリを実装する方法を知っています。これについては、ここでうまく説明されています:抽象クラスで定義された Autofac デリゲート ファクトリの構成
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.
}
}