我试图找到一种方法来获取实现某个接口的所有类,这些类的位置在引用的NuGet包中。我知道如何使用Assembly.GetReferencedAssemblies来处理引用的dll文件。但是我该如何探索NuGet包呢?有没有一些nuget可以帮助完成这项任务?我尝试查看PackageManager类,但没有找到所需的内容。
Assembly.GetReferencedAssemblies
qoefvg9y1#
正如Klaus在注解中所说的,在运行时,您仍然要处理程序集,因此您可以使用当前正在使用的技术。为了避免扫描每个程序集,您可以在目标程序集(NuGet包)中选取一个类型,获取其Assembly属性,然后从该属性加载类型。
Assembly
typeof(SomeTypeInSomeNuGetPackageAssembly).Assembly .GetTypes() .Where(x => x.GetInterface("...") != null) ...
1条答案
按热度按时间qoefvg9y1#
正如Klaus在注解中所说的,在运行时,您仍然要处理程序集,因此您可以使用当前正在使用的技术。
为了避免扫描每个程序集,您可以在目标程序集(NuGet包)中选取一个类型,获取其
Assembly
属性,然后从该属性加载类型。