Postsharp и NLog, общий вопрос дизайна

Это то, что я намерен сделать:

  1. Я хочу написать аспектно-ориентированный аспектный метод класса NLog.
  2. Но я все же хочу убедиться, что вызывающий код приписывается с использованием общего класса атрибутов, который будет внутренне загружать специфическую реализацию NLog, TraceX и т. Д. В аспекте метаданных, в зависимости от того, что указано в файле конфигурации приложения.

Каков наилучший способ приблизиться к этому?

Я имею в виду написание абстрактного класса, который будет основан на аспекте выполнения метода postharp. Тогда у меня будет другая dll, которая будет иметь реализацию, специфичную для NLog... так что у нее будет класс, который будет производным от класса аспекта выполнения общего метода, который я создал в общей dll.

Потребляющий код будет ссылаться только на общий класс DLL, который я написал, и этот класс будет загружать специфичные для NLog DLL, которые я написал, если это то, что указано в конфигурации приложения.

имеет смысл?

1 ответ

Я думаю, что вы на правильном пути. Однако попробуйте вместо этого использовать OnMethodBoundaryAspect. Это быстрее во время выполнения, чем OnMethodInvocationAspect.

Попробуйте воспользоваться преимуществами инициализации во время компиляции (CompileTimeInitialize) и инициализации во время выполнения (RunTimeInitialize) и избегайте дорогостоящих действий в обработчиках.

Удачи.

-gael

Другие вопросы по тегам