【发布时间】:2018-04-23 01:53:18
【问题描述】:
当在 C# 中创建 DynamicMethod 时,绕过可见性是不必要或不相关的,为 skipVisibility 指定的最佳值是什么strong> DynamicMethod 构造函数的参数?为 skipVisibility 指定 true 是否存在性能损失,即与运行时安全需求相关联,如果是这样,每次调用都会发生这种损失,还是只在 JIT 时间,在首次访问之前进行一次?
MSDN 文档:DynamicMethod
【问题讨论】:
-
你试过测量吗?
-
如果没有人回答我确实会,但我推迟了,因为我不知道如何验证幕后发生了什么样的安全需求。换句话说,当您应该尝试测量的因素被运行时/JIT 完全隐藏时,很难尝试解释结果。
-
为什么指定 skipVisibility 会有性能损失?我认为“跳过”某些东西应该会产生更好的性能。
-
@IllidanS4 是的,准确地说;我问是因为这似乎是一个奇怪的案例。由于在这种情况下“跳过”的是执行(例如)
private、protected或internal类声明,我相信这样做可能需要调用者在某个级别上运行提高安全性(?),并在运行时检查这是根据当前安全证据授权的,而不是简单地观察那些不需要提升(?)的声明。
标签: c# cil emit dynamicmethod dynamic-method