在程序集中获取类型(错误:System.Reflection.ReflectionTypeLoadException)

s_h*_*s_h 16 c# asp.net-mvc entity-framework system.reflection

我收到类型的异常"Exception Details:System.Reflection.ReflectionTypeLoadException:无法加载一个或多个请求的类型.检索LoaderExceptions属性以获取更多信息." 使用以下代码:

public IEnumerable<Type> FindClassesOfType(Type assignTypeFrom, IEnumerable<Assembly> assemblies, bool onlyConcreteClasses = true)
    {
        foreach(var a in assemblies)
        {
            foreach (var t in a.GetTypes())
Run Code Online (Sandbox Code Playgroud)

我需要获取每个程序集中定义的类型,但似乎无法生成它.

我已经通过删除dll,清理解决方案,重新加载解决方案等执行了与错误的程序集创建相关的所有典型过程,但没有发生任何事情.

我想请求想法,以通过找到一种方法来检索错误的更多信息,或者找到组件产生问题或类似的东西来解决这个问题.当前的异常消息是如此模糊以至于意识到哪个是问题.

非常感谢.ps:附加信息,当我运行重建操作时,所有进程都正确生成,没有错误.

Mar*_*ell 22

错误消息显示您需要的所有内容,实际上:

try {
    // your code
} catch (ReflectionTypeLoadException ex) {
    // now look at ex.LoaderExceptions - this is an Exception[], so:
    foreach(Exception inner in ex.LoaderExceptions) {
        // write details of "inner", in particular inner.Message
    }
}
Run Code Online (Sandbox Code Playgroud)


Fer*_* JS 5

如果您使用实体框架,请检查 Web.Config 中的版本是否与您的项目中引用的版本相同。