gpt4 book ai didi

autofac - 获取实现某个接口(interface)的所有已注册对象的列表

转载 作者:行者123 更新时间:2023-12-01 16:19:46 26 4
gpt4 key购买 nike

考虑以下因素

builder.Register(c => new A());
builder.Register(c => new B());
builder.Register(c => new C());

BC 都是 ISomeInterface

我现在想要获取所有实现 ISomeInterface 的已注册对象的 IEnumerable

如何在 Autofac 中完成此操作?

最佳答案

刚刚尝试过这个,有效并且不依赖于生命周期上下文:

使用 Activator 来枚举类型

var types = con.ComponentRegistry.Registrations
.Where(r => typeof(ISomeInterface).IsAssignableFrom(r.Activator.LimitType))
.Select(r => r.Activator.LimitType);

然后解决:

IEnumerable<ISomeInterface> lst = types.Select(t => con.Resolve(t) as ISomeInterface);

关于autofac - 获取实现某个接口(interface)的所有已注册对象的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24369861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com