带有可选依赖项的GetTypes()

时间:2017-07-08 14:15:15

标签: c# unity3d reflection dependencies

我正在开发一个可以具有可选外部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()?

0 个答案:

没有答案