我正在开发一种工具,可以将加载项加载到我们办公室使用的商业软件中。可以通过使用从软件 API 中的类继承的类创建 .NET 程序集来开发此软件的插件。
所以我的软件需要检查 DLL 以确定它们是否包含按名称从 API 插件类继承的类。但是,我不希望我的应用程序依赖于 API 本身。它不需要实例化或执行任何这些类,只需确定从 API 插件类继承的类的全名。
我可以使用以下方法加载 dll 程序集:
Assembly.LoadFrom(dllFileName)
然而,当我尝试在加载的程序集中调用 GetTypes() 时。我收到一个 ReflectionTypeLoadException,其中包含许多 LoaderExceptions,抱怨找不到 API 文件。
我也尝试过使用ReflectionOnlyLoadFrom()
,但它抛出了同样的异常。
有没有其他方法可以获取这些信息?同样,我不需要执行任何代码,最终我希望我的工具可以在根本没有安装 API 或软件的计算机上工作。我只需要知道完整的类名。