2017-03-16 70 views
0

我在尝试从程序集中获取类型时遇到问题。尝试获取程序集类型时遇到反射错误

这里是我的代码:

Assembly assembly = Assembly.Load(AssemblyName.GetAssemblyName(file.FullName)); 
Type type = assembly.GetTypes(); 

面对问题仅与下面的DLL。

EntityFramework.SqlServer.dll

Microsoft.AspNet.Identity.EntityFramework.dll

Microsoft.AspNet.Identity.Owin.dll

其他DLL工作正常。

例外:

assembly.GetTypes() 'assembly.GetTypes()' threw an exception of type 'System.Reflection.ReflectionTypeLoadException' System.Type[] {System.Reflection.ReflectionTypeLoadException} 

能有人请让我知道什么可能是问题与这些DLL。 请提出一些解决办法。

+0

也许您错过了程序集的依赖关系,或者您使用的是旧版本的.NET,并且程序集需要更新版本的.NET。 'Assembly.Load'完全加载并将程序集集成到正在运行的应用程序中。出于这个原因,像ILSpy这样的应用程序不使用反射,而是使用Mono.Cecil来加载程序集。 – xanatos

回答

0

EntityFramework.SqlServer.dll对EntityFramework.dll有依赖。

也许,这一个不是位于相同的路径。

尝试将“EntityFramework.dll”放在相同的路径,它会工作。

我想这对其他DLL是同样的问题。

+0

我没有遇到与Enitity Framework.dll和Microsoft.AspNet.Identity.Core.dll位于相同路径的问题。 –

相关问题