use*_*959 3 c# il interop native
我目前正在浏览反编译的C#IL(使用ILSpy),以便了解如何System.Runtime.InteropServices(可能)实现某些方法.当我想检查如何Marshal.Copy()实现时,我发现它只调用CopyToNative(),其定义如下:
// System.Runtime.InteropServices.Marshal
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void CopyToNative(object source, int startIndex, IntPtr destination, int length);
Run Code Online (Sandbox Code Playgroud)
它在哪里实施?有没有机会查看它(反编译)的源代码?如果没有,有没有人知道如何实施?
在MethodImplAttribute和extern关键字表明该功能内置于.NET运行时本身.这个函数几乎肯定是在运行时的源代码中用C或C++实现的.
无法访问运行时的源代码,您唯一真正的选择是反汇编此特定函数并检查程序集.(请注意,这样做可能会违反运行时的EULA.)
您可以考虑查看Mono的源代码,以了解一种可能的实现.
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |