MethodImplAttribute在.NET中是如何工作的?
我正在研究一些框架代码(System.AppDomain.GetDynamicDir方法),这就是汇编程序显示的全部内容:MethodImplAttribute在.NET中是如何工作的?,.net,attributes,disassembly,.net,Attributes,Disassembly,我正在研究一些框架代码(System.AppDomain.GetDynamicDir方法),这就是汇编程序显示的全部内容: [MethodImpl(MethodImplOptions.InternalCall)] private extern string GetDynamicDir(); 调用此方法时会发生什么?我不是指这个特定的方法,而是指一般具有这个属性的方法。回答: (……) MethodImplOptions.InternalCall用于 与外部人员一起告知 方法实现的运行时 在系统
[MethodImpl(MethodImplOptions.InternalCall)]
private extern string GetDynamicDir();
调用此方法时会发生什么?我不是指这个特定的方法,而是指一般具有这个属性的方法。回答:
(……)
MethodImplOptions.InternalCall
用于
与外部人员一起告知
方法实现的运行时
在系统本身内部。
这是为许多核心.NET所做的
更好的框架方法
通过在
非托管代码。例如,许多
字符串上的方法
,GC
,以及
数学课被标记为
内部调用
。正如你所注意到的,
Guid.CompleteGuid
也是一个
内部调用
发件人:
MethodImplOptions.InternalCall:指定内部调用
呼叫内部调用是对
方法中实现的
公共语言运行库本身
因此,基本上,CLR提供了该方法的自己的实现(可能是本机代码),这就是为什么在反汇编程序中看不到它的原因。我在这里找到了这些方法:谢谢!