2012-03-03 6 views
2

A .NET/CLR-質問:すべてのオブジェクトは、2番目のフィールドとしてメソッドテーブルへのポインタを持ちます。このメソッドテーブルの正確なレイアウトは、CLR(x86アーキテクチャ)のバージョン4.0ではどうですか?この情報(およびドメインワイドインターフェーステーブルのレイアウトに関する同様の情報)を見つけるためのヒントを教えてください。CLR(バージョン4.0)のメソッドテーブルの正確なレイアウト

+2

なぜこれを知る必要がありますか?なぜそれは正確でなければならないのですか? – svick

+0

私はCOMがこの種の情報を記述するのに大変な時間を費やしていることを知っていますが、私はCLRがよくわからないのです。この情報をどのように使用したいか教えてください。あなたに良い解決策を教えてくれるかもしれません。 – JaredPar

+0

この質問、その回答、およびそこに含まれるリンクを確認してください。 .NET 4.0では必ずしも最新のものではないが、良いスタートだ。 http://stackoverflow.com/questions/5385653/object-layout-structure-in-net-using-disassembler –

答えて

0

記事“Drill Into .NET Framework Internals to See How the CLR Creates Runtime Objects”は、.Netのメソッドを詳しく説明します。

これは2005年5月のものだから、.Net 4に固有のものではありません。

+0

.NET 4では何も変更されないと仮定する理由はほとんどありません.SSLCL20バージョンでは、MethodTableクラス*宣言*が2599行のコードであり、残りのCLR配管と大きく織り込まれています。 clr/src/vm/methodtable.hソースファイル。答えの正確なレイアウトを期待することは、テーブルから外れています。 –

+0

私はこれと同様の記事を知っており、私はそれらが好きです。しかし、彼らは時代遅れです。 (原理は変更されていないかもしれませんが詳細はあります)。C#の観点から理解しているインタフェースメソッドディスパッチの実装を(VS2020とSOSを使用して)トレースしたいと思います。純粋な好奇心! – Cord

+0

@Cordあなたは古い記事に従ってこれをやってみましたか?おそらく、あなたが興味を持っている部分は変わっていないでしょう。問題が発生した場合は、新しい特定の質問をすることが役に立ちます。 – svick

関連する問題