コード・インスペクションにおける C# Reflection の制限
C# リフレクション API は、メソッド シグネチャや属性などのアセンブリ メタデータを分析するための強力なツールを提供します。ただし、メソッド内の実際のコードへの直接アクセスは提供されません。この制限は、リフレクションが基礎となる IL (中間言語) コードではなく、主にメタデータに焦点を当てているために発生します。
メソッド コードを検査するための代替方法
標準のリフレクションではコードを直接検査することはできませんが、代替手段がいくつか存在します。
ILGenerator
クラスでは IL コードの作成が可能ですが、その取得はできません。MethodInfo.GetMethodBody()
を使用して IL ストリームを取得できますが、この生のバイナリ データの解釈は複雑であり、専用のツールがなければ一般に実用的ではありません。外部ライブラリの使用に関する注意事項
Cecil のようなライブラリは、.NET Framework の標準リフレクション API の一部ではないことに注意してください。 外部依存関係が導入されるため、IL についてのより深い理解が必要になります。 さらに、これらのライブラリを使用して行われた変更は、必ずしも CLR と互換性があるとは限らず、コンパイル プロセス全体で持続するとは限りません。
以上がC# リフレクションはメソッド コードを直接検査できますか? また、どのような代替手段が存在しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。