Aspect Oriented Programmingに頭を悩ます良いリソースはありますか?
PS:.NETやC#で利用可能なライブラリやフレームワークではなく、AOプログラミングを理解する必要があります。
頭を動かすために:オブジェクトの作成、プロパティの設定などのイベントをhookし、それらに一般的な機能をアタッチする機能です。関連するコンテキストが設定されます。
C#にはこのための組み込みの機能がないため、PostSharpなどのフレームワークを使用して、「バイトコードウィービング」(つまり、実際に呼び出しを行うコードをクラスに直接書き込む)を行い、それをシミュレートする必要があります。
これを確認してください。postharpを使用してAOP(ログ、タイミング、トレース、例外処理など)を実装する方法を説明しています。
http://www.codeproject.com/Articles/337564/Aspect-Oriented-Programming-Using-Csharp-and-PostS
以下の適切なリンクは、独自のAOPフレームワークをコーディングする方法を示しています。残念ながら、すべての消費クラスはMarshalByRefObject
から(ContextBoundObject
を介して)継承する必要があります。
http://www.developerfusion.com/article/5307/aspect-oriented-programming-using-net/3/
アスペクト指向プログラミングとは、ロギングやセキュリティ/アクセス制御機能を定義して、コードにこれらの機能を非常に時間をかけて実装するのではなく、コードと織り交ぜることができるメタレベルを持つことを意味します。そのため、1次元を使用する代わりに、2次元をプログラムする必要があります。
これは非常に熱狂的に聞こえるかもしれませんが、理解すれば簡単です。
AOPは、多くの場合、呼び出しをインターセプトし、バックグラウンドで処理を行うプロキシクラスで動作します。