在 Microsoft.Extensions.DependencyInjection 中,我可以:
const treeLayout = tree().size([window.innerWidth -500, window.innerHeight])
.separation(function(a, b) { return a.parent == b.parent ? 1 : 1; });
如何获取Autofac中已注册的组件?
答案 0 :(得分:2)
所有注册的集合都可以在ComponentRegistry
中找到,可以在容器和任何嵌套作用域中找到:
var builder = new ContainerBuilder();
builder.RegisterType<MyType>();
var container = builder.Build();
// Here is the list you want.
container.ComponentRegistry.Registrations;
如果您实际上想解决特定服务的所有提供者,则只需解决IEnumerable<TService>
:
var builder = new ContainerBuilder();
// Two implementations of the same service.
builder.RegisterType<MyTypeA>().As<IService1>();
builder.RegisterType<MyTypeB>().As<IService1>();
var container = builder.Build();
// This will return a set with 2 items.
container.Resolve<IEnumerable<IService1>>();