このようなことをする方法はありますか:Groovyでトレースを追加するためにすべてのクラスを装飾する方法はありますか?しかし、C#では。C#はmetaClassをサポートしていないので、その方法については行き詰まっています。このソリューションを機能させることができれば、リフレクションを使用してすべてのクラスを反復処理し、インターフェイスを実装するようにします。
ありがとう、
ジョー
このようなことをする方法はありますか:Groovyでトレースを追加するためにすべてのクラスを装飾する方法はありますか?しかし、C#では。C#はmetaClassをサポートしていないので、その方法については行き詰まっています。このソリューションを機能させることができれば、リフレクションを使用してすべてのクラスを反復処理し、インターフェイスを実装するようにします。
ありがとう、
ジョー
はい、動的プロキシを使用できます。
Castle DynamicProxy について調べてみませんか? http://www.castleproject.org/projects/dynamicproxy/
または、よりクリーンな方法で AOP を活用したい場合は、PostSharp:
http://www.sharpcrafters.com/postsharp/documentation
OPはコメントで次のように述べています。
ああ、私は実際に PostSharp を使用して、どのメソッドがいつ呼び出されたかを出力しています。私がしなければならないことを避けようとしているのは、コード内のすべてのクラスに属性を追加することです。[MyAttribute] public interface IDebug {} そして、実行時にクラスにこのインターフェイスを実装させます。
PostSharp は、アセンブリ レベルの側面をサポートしています[assembly:YourAspect]
。後で、アスペクトで、どのメソッドが呼び出され、どのオブジェクトが属しているかを確認し、それに応じてすべての作業を行うことができます。