Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MethodImplAttribute在.NET中是如何工作的?_.net_Attributes_Disassembly - Fatal编程技术网

MethodImplAttribute在.NET中是如何工作的?

MethodImplAttribute在.NET中是如何工作的?,.net,attributes,disassembly,.net,Attributes,Disassembly,我正在研究一些框架代码(System.AppDomain.GetDynamicDir方法),这就是汇编程序显示的全部内容: [MethodImpl(MethodImplOptions.InternalCall)] private extern string GetDynamicDir(); 调用此方法时会发生什么?我不是指这个特定的方法,而是指一般具有这个属性的方法。回答: (……) MethodImplOptions.InternalCall用于 与外部人员一起告知 方法实现的运行时 在系统

我正在研究一些框架代码(System.AppDomain.GetDynamicDir方法),这就是汇编程序显示的全部内容:

[MethodImpl(MethodImplOptions.InternalCall)]
private extern string GetDynamicDir();
调用此方法时会发生什么?我不是指这个特定的方法,而是指一般具有这个属性的方法。

回答:

(……)
MethodImplOptions.InternalCall
用于 与外部人员一起告知 方法实现的运行时 在系统本身内部。 这是为许多核心.NET所做的 更好的框架方法 通过在 非托管代码。例如,许多
字符串上的方法
GC
,以及 数学课被标记为
内部调用
。正如你所注意到的,
Guid.CompleteGuid
也是一个
内部调用

发件人:

MethodImplOptions.InternalCall:指定内部调用 呼叫内部调用是对 方法中实现的 公共语言运行库本身

因此,基本上,CLR提供了该方法的自己的实现(可能是本机代码),这就是为什么在反汇编程序中看不到它的原因。

我在这里找到了这些方法:谢谢!