gpt4 book ai didi

c# - System.MethodAccessException、CAS 和 Visual Studio 调试器

转载 作者:行者123 更新时间:2023-11-30 14:02:13 25 4
gpt4 key购买 nike

我正在调用 ModelMetadataProviders.Current.GetMetadataForProperties 以使用 Visual Studio 2010 获取 WPF 应用程序中的 ModelMetadata 列表。这个调用执行得很好,我得到了 IEnumerable<> 作为返回。在代码行中,我尝试对此进行迭代,我得到 System.MethodAccessException。

有趣的是只有当我使用 F5 进行调试时它才会发生。如果我使用 Ctrl+F5 运行代码,那么我不会得到这个异常并且代码工作正常。如果我从 Windows 资源管理器运行 exe,它也运行良好。

当然,我遗漏了什么。可能是,System.Web.Mvc 不能从 WPF 应用程序使用? (为什么)有没有关于 visual studio 调试器的东西?

我们将不胜感激。

这里是整个异常(exception):

Attempt by security transparent method 'System.Web.Mvc.TypeDescriptorHelper.Get(System.Type)' to access security critical method 'System.ComponentModel.DataAnnotations.AssociatedMetadataTypeTypeDescriptionProvider..ctor(System.Type)' failed.

Assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' is a conditionally APTCA assembly which is not enabled in the current AppDomain. To enable this assembly to be used by partial trust or security transparent code, please add assembly name 'System.ComponentModel.DataAnnotations, PublicKey=0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9' to the the PartialTrustVisibleAssemblies list when creating the AppDomain.

最佳答案

这是 System.ComponentModel.DataAnnotations.dll 中的一个已知错误,将在 .NET Framework 的下一个版本中修复。简而言之,DataAnnotations 程序集被标记为有条件的 APTCA,因为它最初仅供 ASP.NET 应用程序使用。该程序集变得更加有用,因此它可以在 ASP.NET 之外使用,但我们忘记从程序集中删除条件 APTCA 标志。这会导致透明 DLL(如 System.Web.Mvc.dll)在某些 AppDomain 中的 ASP.NET 应用程序之外访问此程序集时失败,例如那些由 VS 调试进程实例化的程序集。

回答您的其他问题:System.Web.Mvc.dll 从未在 ASP.NET 应用程序之外进行过测试。它有几个与 System.Web.dll 和其他相关程序集的 Hook ,因此它在某个时候会崩溃也就不足为奇了。

关于c# - System.MethodAccessException、CAS 和 Visual Studio 调试器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6402384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com