MethodImplAttribute如何在.NET中运行?
-
06-07-2019 - |
题
我正在研究一些框架代码(System.AppDomain.GetDynamicDir方法),这是所有汇编程序显示的:
[MethodImpl(MethodImplOptions.InternalCall)]
private extern string GetDynamicDir();
调用此方法时会发生什么?我不是指这个特定的方法,而是具有此属性的方法。
解决方案
来自 MSDN :
MethodImplOptions.InternalCall :指定内部 呼叫。内部呼叫是对a的呼叫 在...内实现的方法 公共语言运行时本身。
基本上,CLR提供了自己的方法实现(可能是本机代码),这就是你在反汇编程序中看不到的原因。
其他提示
回答此处:
(...) 使用
MethodImplOptions.InternalCall
与extern一起告诉 运行该方法的运行时 在系统内部。 这是针对许多核心.NET完成的 框架方法更好 通过实施服务 非托管代码。例如,很多String
,GC
上的方法,以及 数学类标记为 的 <代码> InternalCall 代码> 即可。正如你所注意到的,Guid.CompleteGuid
也是一个 的 <代码> InternalCall 代码> 强>
不隶属于 StackOverflow