いくつかの特別なメソッドがあり、コンパイルされたアセンブリで呼び出しを分析したい。
例:
public static class SrcHelper {
[MySpecialMethod]
[Conditional( "DEBUG" )]
public static void ToDo( params object[] info ) {
/* do nothing */
/* this method is not called when code is compiled in RELEASE mode */
}
}
// ... somewhere else in another assembly ...
Array CreateArraySampleMethod( int size ) {
// This call has only informative character. No functionality is required.
SrcHelper.ToDo( "Should create array of ", typeof( MyClass ), " with specified size." );
throw new NotImplementedException();
}
このコンパイルされたコードから、引数の値を取得したい {「指定されたサイズの「、MyClass、」の配列を作成する必要があります。」}。Mono から Cecil を使ってみたところ、"ToDo" メソッドを呼び出すための手順が見つかりました。しかし、引数値で命令を識別する方法がわかりません。
複雑な状況が発生する可能性があり、一部の引数の値を解決できないことはわかっています。しかし、定数値のみを解決する必要があります-私の目的には十分です。
ありがとう。
編集: 「ToDo」メソッド (および同様のもの) は、コメント ( //、/* ... */ ) の代わりに使用する必要があり、コンパイル後に IL を分析し、具体的なアセンブリのドキュメントと todo リストを自動生成する必要があります。 .