我编写了一个新的 FactoryComponentSelector,它能够通过名称解析特定接口的实例。到目前为止,一切都很好。但是,当涉及到我们应用程序的业务部分的配置时,我需要一个容器外给定接口的所有名称的列表。
假设我们有以下注册:
container.AddFacility<TypedFactoryFacility>();
container.Register(Component.For<ITypedFactoryComponentSelector>().ImplementedBy<CreateByNameComponentSelector>());
container.Register(Component.For<IProviderFactory>().AsFactory(c => c.SelectedWith<CreateByNameComponentSelector>()));
container.Register(Component.For<IProvider>().ImplementedBy<FirstProvider>().Named("First"));
container.Register(Component.For<IProvider>().ImplementedBy<SecondProvider>().Named("Second"));
container.Register(Component.For<IProvider>().ImplementedBy<ThirdProvider>().Named("Third"));
有没有办法向容器询问实现接口 IProvider 的所有已注册组件的名称列表?