我正在使用 Visual Studio 2010 调用 ModelMetadataProviders.Current.GetMetadataForProperties 来获取 WPF 应用程序中的 ModelMetadata 列表。
这个调用执行得很好,我得到 IEnumerable 作为回报。
在代码行中,我尝试迭代此代码,得到 System.MethodAccessException。
有趣的是,只有当我使用 F5 进行调试时才会发生这种情况。
如果我使用 Ctrl+F5 运行代码,那么我不会收到此异常,并且代码可以正常工作。
如果我从 Windows 资源管理器运行 exe,它也运行良好。
当然,我错过了一些东西。可能是,System.Web.Mvc 无法从 WPF 应用程序中使用? (为什么)
有没有关于 Visual Studio 调试器的东西?
任何帮助将不胜感激。
这是整个异常:
尝试安全透明的方法
'System.Web.Mvc.TypeDescriptorHelper.Get(System.Type)'
访问安全关键方法
'System.ComponentModel.DataAnnotations.AssociatedMetadataTypeTypeDescriptionProvider..ctor(System.Type)'
失败的。
集会
'System.ComponentModel.DataAnnotations,
版本=4.0.0.0,文化=中立,
PublicKeyToken=31bf3856ad364e35' 是
有条件的 APTCA 组装是
未在当前 AppDomain 中启用。
为了使该程序集能够被使用
部分信任或安全透明
代码,请添加程序集名称
'System.ComponentModel.DataAnnotations,
公钥=0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C49 2651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C 8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9'
到
PartialTrustVisibleAssemblies 列表
创建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 和其他相关程序集挂钩的钩子,因此它在某个时候崩溃也就不足为奇了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)