Sam*_*ham 8 .net c# dynamic clr4.0
我正在研究.NET 4项目,并且能够从HyperDescriptor提供的动态属性访问中受益,但是当在.NET 4中构建时,它似乎无法正常工作.我从CodeProject下载了源代码,将解决方案的项目转换为VS2010,并将目标框架更新为4.0.在构建并且示例正确执行时,时序显示使用HyperDescriptor进行动态属性访问是获取/设置对象值的最慢方式.
只有在使用.NET 4从源代码构建HyperDescriptor时才会出现此问题.如果从.NET 4项目中添加对使用.NET 2构建的HyperDescriptor的引用,则可以正常工作.这是目前可接受的解决方案,但是使用.NET 4构建会有一些潜在的优势吗?任何人都想在HyperDescriptor上破解,看看为什么.NET 4版本的速度如此之慢?
Jul*_*ain 13
我下载了源代码并使用.NET 4运行测试.InvalidOperationException
抛出和捕获的数量令人印象深刻,导致速度缓慢.
转到HyperTypeDescriptionProvider.BuildDescriptor
并替换:
[ReflectionPermission(SecurityAction.Assert, Flags = ReflectionPermissionFlag.AllFlags)]
Run Code Online (Sandbox Code Playgroud)
通过:
[SecuritySafeCritical]
[ReflectionPermission(SecurityAction.Assert, Unrestricted = true)]
Run Code Online (Sandbox Code Playgroud)
不推荐使用AllFlags并且仅引发警告,但是从安全透明方法断言在.NET 4中无效.有关详细信息,请参阅.NET Framework 4中的安全更改.
归档时间: |
|
查看次数: |
1493 次 |
最近记录: |