【发布时间】:2021-12-07 06:43:00
【问题描述】:
我正在努力寻找一个好的答案。
我需要扫描所有实现接口IDomainEvent的类。
问题是那些类型在项目中不一定被加载。比如我的主程序集是WebApi,有一个依赖Application,它依赖于Domain,它又依赖于DomainEvents
因此,我没有一种“简单”的方法来获取所有实现 IDomainEvent 并在 *DomainEvents.csproj 项目中的类型
是否有任何 nuget 库可以动态导航所有引用的项目/程序集及其子依赖项并能够检索实现接口的所有类型?
它在启动时发生一次,所以我不太关心性能。
PS:下面的方法按预期返回0,因为程序集没有加载
var allDomainEventTypes =
AppDomain
.CurrentDomain
.GetAssemblies()
.SelectMany(x => x.GetTypes())
.Where(t => t.IsAssignableTo(typeof(IDomainEvent)) && !t.IsInterface)
.ToList();
【问题讨论】:
标签: c# reflection .net-assembly