15
C#でメソッド呼び出しをインターセプトするにはどうすればよいですか?
特定のクラスについて、トレース機能を使用したいと考えています。つまり、すべてのメソッド呼び出し(メソッドシグネチャと実際のパラメーター値)とすべてのメソッド出口(メソッドシグネチャのみ)をログに記録したいと考えています。 次のことを前提としてこれをどのように達成しますか: C#にサードパーティのAOPライブラリを使用したくありません。 追跡したいすべてのメソッドに重複したコードを追加したくありません。 クラスのパブリックAPIを変更したくありません。クラスのユーザーは、すべてのメソッドをまったく同じ方法で呼び出すことができるはずです。 質問をより具体的にするために、3つのクラスがあると仮定しましょう。 public class Caller { public static void Call() { Traced traced = new Traced(); traced.Method1(); traced.Method2(); } } public class Traced { public void Method1(String name, Int32 value) { } public void Method2(Object object) { } } public class Logger { public static void …
154
c#
reflection
aop