Да, это так.Есть интерфейс IProxyGenerationHook
, который вы можете реализовать, чтобы контролировать то, что перехватывается. Учебное пособие, которое я написал десять лет назад все еще (к лучшему или худшему), кажется, лучший ресурс об этом.
Есть несколько способов настроить его в Виндзоре.
В идеале, если это возможно, вы должны сделать это при регистрации, в вашем IWindsorInstaller
:
var yourHook = new YourHook();
container.Register(
Classes.FromThisAssembly()
.BasedOn<IJob>()
.LifestyleTransient()
.WithServiceBase()
.Configure(c =>
c.Interceptors<AuthenticateJobInterceptor>()
.Proxy.Hook(yourHook)));
В качестве альтернативы, если вы хотите, чтобы ваш код был таким же, как сейчас (я рекомендуюоборачивая в конструктор ComponentModel ), вы можете сделать что-то вроде:
var options = handler.ComponentModel.ObtainProxyOptions();
options.Hook = yourHook; // InstanceReference(yourHook)