我正试图找到一种方法来获得实现一些接口的所有类,这些类的位置在引用的NuGet包中。
我知道如何通过使用Assembly.GetReferencedAssemblies
来引用dll文件。但是我该如何探索NuGet包呢?是否有一些金块可以帮助完成这项任务?
我试着去看PackageManager类,但是我没有找到我想要的。
正如Klaus在注释中所说,在运行时您仍然在处理程序集。所以你可以使用你正在使用的技术。
为了避免扫描每个程序集,您可以在目标程序集(NuGet包)中选择一个类型,获取其Assembly
属性,并从中加载类型。
typeof(SomeTypeInSomeNuGetPackageAssembly).Assembly
.GetTypes()
.Where(x => x.GetInterface("...") != null)
...