4

C# コードの計測を行う最も簡単な方法は何ですか? インストルメンテーションとは、実行中に動的な情報を収集するために独自のコードを挿入することを意味します。

例 (星印は重要でないコードを表します):

for (int i=0; i<s.Length-2; ++i) {
  if (*)
    s = s.Substring(1, s.Length-2);
}

iに割り当てられている0キャッチしたいと思います。メソッド呼び出しをキャッチするということは、それがどのメソッドであるか、引数の値などの情報を持っていることを意味します。

メソッド呼び出しを独自のラッパーでラップすることにより、Roslynでそれを実行しようとしました。これは、a) 値をインターセプトして格納し (たとえば)、b) 実際のメソッドを呼び出し、c) この結果を返すことができます。唯一の問題は、このアプローチが実際にエラーを起こしやすく、難しいことです (カバーするさまざまなケースがあるため)。

この目的のためのライブラリがすでにあるのか、それとももっと簡単な方法を誰かが知っているのでしょうか。ありがとうございました!

4

1 に答える 1