2

这就是我打算做的:

  1. 我想编写一个面向方面的 NLog 特定 onmethodexecutionaspect 类。
  2. 但我仍然想确保调用代码使用通用属性类进行属性化,该属性类将在内部加载 NLog 或 TraceX 等特定于方法执行方面的实现,具体取决于应用程序配置文件中指定的内容。

解决这个问题的最佳方法是什么?

我正在考虑编写一个从 postsharp 方法执行方面派生的抽象类。然后我将有另一个 dll,它将有一个特定于 NLog 的实现......所以它将有一个类,该类将派生自我在通用 dll 中创建的通用方法执行方面类。

消费代码将仅引用我编写的通用类 dll,如果这是在应用程序配置中指定的,则该类将加载我编写的 NLog 特定 dll。

说得通?

4

1 回答 1

3

我认为你在正确的轨道上。但是,请尝试改用 OnMethodBoundaryAspect。它在运行时比 OnMethodInvocationAspect 更快。

尝试利用编译时初始化 (CompileTimeInitialize) 和运行时初始化 (RunTimeInitialize) 并避免在处理程序中做任何代价高昂的事情。

于 2009-08-14T13:06:42.057 回答