2

これは私がやろうとしていることです:

  1. アスペクト指向の NLog 固有の onmethodexecutionaspect クラスを作成したいと考えています。
  2. しかし、アプリケーション構成ファイルで指定されている内容に応じて、メソッド実行アスペクトの NLog または TraceX などの特定の実装を内部的にロードする一般的な属性クラスを使用して、呼び出し元のコードが属性付けされていることを確認したいと考えています。

これにアプローチする最良の方法は何ですか?

Postsharp メソッドの実行の側面から派生する抽象クラスを作成することを考えています。次に、NLog固有の実装を持つ別のdllを作成します...そのため、一般的なdllで作成した一般的なメソッド実行アスペクトクラスから派生するクラスが作成されます。

消費するコードは、私が作成した一般的なクラス dll のみを参照し、アプリケーション構成で指定されている場合、そのクラスは私が作成した NLog 固有の dll をロードします。

理にかなっていますか?

4

1 に答える 1

3

あなたは正しい軌道に乗っていると思います。ただし、代わりに OnMethodBoundaryAspect を使用してみてください。OnMethodInvocationAspect よりも実行時に高速です。

コンパイル時の初期化 (CompileTimeInitialize) と実行時の初期化 (RunTimeInitialize) を利用して、ハンドラーでコストのかかる処理を行わないようにしてください。

于 2009-08-14T13:06:42.057 に答える