我如何获得Autofac的注册服务清单?

问题描述 投票:0回答:1

Microsoft.Extensions.DependencyInjection(依赖注入)我可以。

        public static IServiceCollection BuildAopProxy(this IServiceCollection service)
        {
            foreach (ServiceDescriptor item in service)
            {}
        }

如何获取Autofac中注册的组件?

autofac
1个回答
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>>();
© www.soinside.com 2019 - 2024. All rights reserved.