autofacを使用して名前でコンポーネントの登録をグループ化することは可能ですか?
たとえば、次のコードには、IDbContextProvider の 2 つの登録があります。
そして、WfcService で IDbContextProvider の名前付きインスタンス (「プロキシレス」) のみを解決したいと考えています。DependsOnNamed("proxyless")メソッドのようなものを使用して、同じ名前を持つ名前付きインスタンスのセットに依存関係を明示的に設定したいと思います。
システム全体で IDbContextProvider の既定の実装を使用し、IWfcService の後継者は独自の名前付きインスタンスを使用する必要があります。
var builder = new ContainerBuilder();
builder.RegisterType<DbContextProvider>().As<IDbContextProvider>().As<IDbContextProvider>();
builder.RegisterType<ProxyLessDbContextProvider>().Named<IDbContextProvider>("proxyless");
builder.RegisterType<Repository>().As<IRepository>();//depends on IDbContextProvider
builder.RegisterType<BusinessService>().As<IBusinessService>();//depends on IRepository
builder.RegisterType<WfcService>().As<IWfcService>().DependsOnNamed("proxyless");//depends on IBusinessService
IContainer container = builder.Build();
var wcf = container.Resolve<IWfcService>(); // should depend on "proxyless" IDbContextProvider