2017-03-16 89 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位於相同路徑的問題。 –

相關問題