一个方法可以被内联;有一个属性可以防止这种情况(“有一个属性”)。但是,由于 JITter 的尾调用优化(http://www.hanselman.com/blog/ReleaseISNOTDebug64bitOptimizationsAndCMethodInliningInReleaseBuildCallStacks.aspx),显然一个方法也可能无法在 x64 上获得自己的堆栈帧。这会影响 的行为MethodBase.GetCurrentMethod
吗?
我能找到的讨论主要是关于内联的(什么时候有资格被 CLR 内联的方法?)。虽然这些讨论本身很有趣,但我的问题实际上是关于在什么情况下——如果有的话——MethodBase.GetCurrentMethod
可以依赖于识别程序员发出调用的相同方法(例如,后期绑定到一个方法当前方法实际上是替代方法)。内联是一种MethodBase.GetCurrentMethod
可能被愚弄的方式,但我想知道它是否是唯一的方式?