1

このようなことをする方法はありますか:Groovyでトレースを追加するためにすべてのクラスを装飾する方法はありますか?しかし、C#では。C#はmetaClassをサポートしていないので、その方法については行き詰まっています。このソリューションを機能させることができれば、リフレクションを使用してすべてのクラスを反復処理し、インターフェイスを実装するようにします。

ありがとう、

ジョー

4

1 に答える 1

2

はい、動的プロキシを使用できます。

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]。後で、アスペクトで、どのメソッドが呼び出され、どのオブジェクトが属しているかを確認し、それに応じてすべての作業を行うことができます。

于 2013-02-08T09:40:13.783 に答える