我收到类型的异常“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())
我需要获取每个程序集中定义的类型,但似乎无法生成它。
我已经执行了与错误的程序集创建相关的所有典型程序,删除了dll,清理解决方案,重新加载解决方案等,但没有发生任何事情。
我想请求一些想法,以便通过找到一种方法来检索错误的更多信息,或者找到组件产生问题或类似的东西来解决这个问题。当前的异常消息是如此模糊,以至于意识到哪个是问题。
非常感谢你。 ps:附加信息,当我运行重建操作时,所有进程都正确生成而没有错误。答案 0 :(得分: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
}
}
答案 1 :(得分:4)
如果使用实体框架,请检查Web.Config中的版本是否与项目中引用的版本相同。
答案 2 :(得分:2)
您是否创建了DLL?您要定位哪个框架?
我刚刚遇到这个问题。即使使用框架3.5(使用CLR2)编译我的外部库,也可以导入DLL coudn。错误与您的错误相同。我已经解决了我的问题,重建我的libs目标框架3.0,现在似乎工作。我将我的dll留在Plugins文件夹中没有任何问题。
Unity forums中有很多类似的问题。
也许你已经有了解决方案,但这可以帮助将来需要它的人(比如我需要)。
最诚挚的问候!