Postsharp и NLog, общий вопрос дизайна
Это то, что я намерен сделать:
- Я хочу написать аспектно-ориентированный аспектный метод класса NLog.
- Но я все же хочу убедиться, что вызывающий код приписывается с использованием общего класса атрибутов, который будет внутренне загружать специфическую реализацию NLog, TraceX и т. Д. В аспекте метаданных, в зависимости от того, что указано в файле конфигурации приложения.
Каков наилучший способ приблизиться к этому?
Я имею в виду написание абстрактного класса, который будет основан на аспекте выполнения метода postharp. Тогда у меня будет другая dll, которая будет иметь реализацию, специфичную для NLog... так что у нее будет класс, который будет производным от класса аспекта выполнения общего метода, который я создал в общей dll.
Потребляющий код будет ссылаться только на общий класс DLL, который я написал, и этот класс будет загружать специфичные для NLog DLL, которые я написал, если это то, что указано в конфигурации приложения.
имеет смысл?
1 ответ
Я думаю, что вы на правильном пути. Однако попробуйте вместо этого использовать OnMethodBoundaryAspect. Это быстрее во время выполнения, чем OnMethodInvocationAspect.
Попробуйте воспользоваться преимуществами инициализации во время компиляции (CompileTimeInitialize) и инициализации во время выполнения (RunTimeInitialize) и избегайте дорогостоящих действий в обработчиках.
Удачи.
-gael