我们有一个用.NET编写的应用程序,它使用Reflection API浏览.NET程序集。当我们使用此应用程序浏览使用.NET Core 2.0编译的dll
时,它会失败并出现以下异常。任何有关这方面的帮助将不胜感激。
Unhandled Exception: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeModule.GetTypes()
at System.Reflection.Assembly.GetTypes()
at ConsoleApp1.Program.NewMethod() in c:\Users\faisal_iqbal\documents\visual studio 2017\Projects\CoreX\ConsoleApp1\Program.cs:line 23
at ConsoleApp1.Program.Main(String[] args) in c:\Users\faisal_iqbal\documents\visual studio 2017\Projects\CoreX\ConsoleApp1\Program.cs:line 16
答案 0 :(得分:2)
回答我自己的问题。
NETCore是一个非常不同的框架。如果你构建该程序集 取而代之的是.NETStandard 2.0,并至少定位您的应用 4.6.1那么你就可以做到这一点。
- Hans Passant
由于.NET Framework和.NET Core都是不同的框架,因此每个框架都有自己的Reflection API
。
如果您只是为了元数据读取而需要加载程序集,请使用适用于.NET Framework和.NET Core的Mono.Cecil框架。它不会像Reflection那样加载装配或相关装配。它只是读取元数据信息,如