我正在开发一个可以具有可选外部DLL依赖项的项目(我无法访问这些依赖项的代码)。 我将所有可选的依赖项代码移动到它自己的类中,该类仅在DLL存在时进行实例化,因此我在运行时没有遇到任何问题。
但是,我想将Assembly.GetTypes()的反射用于其他一些东西,但由于这会尝试加载所述类,因此我得到以下异常:
System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
如果加载了可选的依赖项,我不会收到这样的错误,因为类可以加载。
相关代码:
foreach (var pl in R.Plugins.GetPlugins())
{
//pl has the optional dependencies
var assembly = pl.GetType().Assembly;
var types = pl.GetTypes(); //here is the exception
}
如何在不加载依赖于可选依赖项的特定类的情况下使用GetTypes()?