首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用ReflectionTypeLoadException ()时引发的Assembly.GetTypes

调用ReflectionTypeLoadException ()时引发的Assembly.GetTypes
EN

Stack Overflow用户
提问于 2014-05-15 17:28:03
回答 1查看 1.8K关注 0票数 1

我最近升级到了ASP.Net MVC 5,升级后我的代码不再运行。

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

代码语言:javascript
复制
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
IEnumerable<Type> types = assemblies.SelectMany(o => o.GetTypes()).ToList(); // <-- Throws error

我得到了Microsoft.Web.Mvc程序集上的错误:

无法加载一个或多个请求类型。检索LoaderExceptions属性以获得更多信息。

在检索加载程序异常时,我得到以下信息:

  • { 'Microsoft.Web.Mvc.CreditCardAttribute.GetClientValidationRules(System.Web.Mvc.ModelMetadata,:在重写成员:System.TypeLoadException System.Web.Mvc.ControllerContext时违反了继承安全规则)‘。重写方法的安全可访问性必须与被覆盖的方法的安全可访问性相匹配。} System.Exception {System.TypeLoadException}
  • 1{ 'Microsoft.Web.Mvc.EmailAddressAttribute.GetClientValidationRules(System.Web.Mvc.ModelMetadata,System.TypeLoadException:在重写成员:System.Web.Mvc.ControllerContext时违反了继承安全规则)‘。重写方法的安全可访问性必须与被覆盖的方法的安全可访问性相匹配。} System.Exception {System.TypeLoadException}
  • 2{ 'Microsoft.Web.Mvc.FileExtensionsAttribute.GetClientValidationRules(System.Web.Mvc.ModelMetadata,System.TypeLoadException:在重写成员:System.Web.Mvc.ControllerContext时违反了继承安全规则)‘。重写方法的安全可访问性必须与被覆盖的方法的安全可访问性相匹配。} System.Exception {System.TypeLoadException}
  • 3{ 'Microsoft.Web.Mvc.CookieValueProviderFactory'.:按类型:System.TypeLoadException:违反继承安全规则派生类型必须与基类型的安全可访问性匹配,或者更难访问。} System.Exception {System.TypeLoadException}
  • 等等..。

我知道MVC团队删除了AllowPartialTrustedCallers程序集属性。这是一个彻底的改变,http://www.asp.net/visual-studio/overview/2013/release-notes#knownissues。我的web.config设置为完全信任,但仍然不去。

有什么主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-15 18:25:10

看起来您使用的是一些MVC 4 DLL。

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

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

这是一个问题,原因是MVC 4程序集被归因于AllowPartialTrustedCallers,但是MVC 5程序集没有。

因为MVC 5 DLL有一个用于MVC 4 DLL的基类,所以MVC 4 DLL需要对其类具有相同或更多的限制权限。因为它没有(这就是为什么这是一个突破性的改变),安全系统失败。

还要注意,这是一个运行时错误,部分原因是构建的版本没有这个问题(实际上是在一个新的基类中进行交换)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23684965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档