MethodImplAttributeは.NETでどのように機能しますか?
-
06-07-2019 - |
質問
いくつかのフレームワークコード(System.AppDomain.GetDynamicDirメソッド)を調査していましたが、これはすべてのアセンブラが示したものです。
[MethodImpl(MethodImplOptions.InternalCall)]
private extern string GetDynamicDir();
このメソッドが呼び出されるとどうなりますか?この特定のメソッドを意味するのではなく、一般的にこの属性を持つメソッドです。
解決
MSDN から:
MethodImplOptions.InternalCall :内部を指定します コール。内部呼び出しは、への呼び出しです 内で実装されるメソッド 共通言語ランタイム自体。
したがって、基本的に、CLRはこのメソッドの独自の実装(おそらくネイティブコード内にある)を提供するため、逆アセンブラーでは表示できません。
他のヒント
回答こちら:
(...)
MethodImplOptions.InternalCall
が使用されます externと組み合わせて、 メソッドが実装されるランタイム システム自体の内部で。 これは、多くのコア.NETで行われます より良いフレームワークメソッド で実装されて提供 アンマネージコード。たとえば、多くのString
、GC
のメソッド、および 数学のクラスはInternalCall
。お気づきのとおり、Guid.CompleteGuid
もInternalCall
。
所属していません StackOverflow