実行時に動的な型が発行されるアプリケーションがあります。生成された .NET コードを検査するために、動的に生成されたアセンブリを保存し、Reflector を使用します。
動的アセンブリを保存せずに、それぞれのプロセスの実行中にリフレクターの方法でそれらを反映する方法があるかどうか疑問に思っていますか? つまり、リフレクターに「プロセスにアタッチ...」ボタンのようなものを用意します。
ありがとう。
編集:この機能の唯一の存在理由は、動的に生成されたアセンブリを反映することです。
実行時に動的な型が発行されるアプリケーションがあります。生成された .NET コードを検査するために、動的に生成されたアセンブリを保存し、Reflector を使用します。
動的アセンブリを保存せずに、それぞれのプロセスの実行中にリフレクターの方法でそれらを反映する方法があるかどうか疑問に思っていますか? つまり、リフレクターに「プロセスにアタッチ...」ボタンのようなものを用意します。
ありがとう。
編集:この機能の唯一の存在理由は、動的に生成されたアセンブリを反映することです。
動的アセンブリから派生する C# コードをおそらく探していると思いますが、この質問はかなり古いものです...
Visual Studio のイミディエイト ウィンドウまたはWinDbgを使用して、実行中の動的アセンブリの IL を取得できます。( Visual Studio はまだ 32 ビット製品であるため、64 ビット プロセスをデバッグする場合は WinDbg を使用する必要があります。)
!load SOS.dll
コマンドまたは単にを使用して SOS.dll をロードし!load SOS
ます。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll
~
: 非侵入モードでは、コマンドと コマンドを使用して手動でスレッドを選択する必要があります~n s
。を使用~
してすべてのスレッドを一覧表示し、~n s
コマンドを使用して切り替えます。たとえば、~12 s
スレッド番号 12 に切り替えるために使用します。!clrstack
!ip2md [address]
0123456
、コマンドを発行します!ip2md 0123456
。!dumpil [method descriptor]
as the address of the method descriptor, you would issue the command
!dumpil 0A1B2C3D」をリストした場合。これにより、IL アセンブリではありますが、動的アセンブリを確認できるようになります。
Reflector 用の実行中のアセンブリ アドインがあります ( http://weblogs.asp.net/kdente/articles/438539.aspx )。ただし、実行中のアセンブリのパスを取得するのに役立つだけで、アセンブリはその後 Reflector によってディスクから読み込まれるのではないかと思います。ただし、おそらく試してみる価値があります。また、Reflector アドインの作成はそれほど難しくないため、実行中のアセンブリ アドイン アプローチを拡張して、アセンブリをディスクに自動的に保存し、Reflector で読み込めるようにすることもできます (既存のアドインがまだこれを行っていません。)