Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调用Assembly.GetTypes()时引发ReflectionTypeLoadException_C#_.net_Asp.net Mvc_Asp.net Mvc 5 - Fatal编程技术网

C# 调用Assembly.GetTypes()时引发ReflectionTypeLoadException

C# 调用Assembly.GetTypes()时引发ReflectionTypeLoadException,c#,.net,asp.net-mvc,asp.net-mvc-5,C#,.net,Asp.net Mvc,Asp.net Mvc 5,我最近升级到ASP.NETMVC5,升级后我的代码不再运行 我正在通过反思当前AppDomain中的类型来执行插件加载 Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); IEnumerable<Type> types = assemblies.SelectMany(o => o.GetTypes()).ToList(); // <-- Throws error Assembly[]assem

我最近升级到ASP.NETMVC5,升级后我的代码不再运行

我正在通过反思当前AppDomain中的类型来执行插件加载

Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
IEnumerable<Type> types = assemblies.SelectMany(o => o.GetTypes()).ToList(); // <-- Throws error
Assembly[]assemblies=AppDomain.CurrentDomain.GetAssemblies();

IEnumerable types=assemblies.SelectMany(o=>o.GetTypes()).ToList();// 看起来您正在使用一些MVC4DLL

注意,作为一个副作用,您不能在同一应用程序中使用4.0和5.0程序集。您需要将它们全部更新到5.0

您可能需要查看哪些程序集正试图作为4个版本加载

这是一个问题的原因是MVC 4程序集的属性为
AllowPartialTrustedCallers
,而MVC 5程序集的属性为AllowPartialTrustedCallers

由于MVC5DLL有一个MVC4DLL的基类,MVC4DLL需要对其类具有相同或更严格的权限。由于没有(这就是为什么这是一个突破性的变化),安全系统失败了


另请注意,这是一个运行时错误,部分原因是生成的版本没有此问题(您正在有效地交换一个新的基类)。

您是否在web.config中为System.web.Mvc添加了从4到5的程序集重定向?这为什么会造成出现的问题?从技术上讲,什么会导致错误?@RyanGriffith:我试图扩大我的答案,如果不够详细,请告诉我。