Непосредственный перехват класса прокси с непустым конструктором через динамический прокси замка
Я основываю большую часть моей текущей реализации на информации, предоставленной здесь:
Ninject Перехватить какой-либо метод с определенным атрибутом?
Я использую пользовательский класс стратегии планирования, который ищет все методы с заданными атрибутами (а не непрямыми атрибутами-перехватчиками), которые затем будут проксироваться, если он соответствует критериям.
Пример использования будет:
Kernel.Components.Add<IPlanningStrategy, CustomPlanningStrategy<LoggingAttribute, LoggerInterceptor>>();
Это будет искать любые методы, которые имеют[Logging]
атрибут, а затем будет использовать перехватчик регистрации.
Однако в настоящее время я получаю InvalidProxyConstructorArgumentsException от динамического прокси, когда он пытается проксировать методы со связанными атрибутами. Теперь я помню, что читал, что вам нужны виртуальные методы, однако я не помню, чтобы вы видели, что у вас должен быть конструктор без параметров.
Все привязки выполняются для интерфейсов, а перехватчики AOP происходят через атрибуты и пользовательский класс планирования прокси, упомянутый в ссылке выше.
Так есть ли способ получить динамический прокси (или версию linfu) для прокси классов, которые имеют конструкторы с зависимостями? (Все зависимости находятся в Ядре, поэтому они не могут быть разрешены).