<PackageReference Include="Castle.Windsor" Version="2.5.3" />

IProxyFactory

public interface IProxyFactory
Defines the contract used by the kernel to obtain proxies for components. The implementor must return a proxied instance that dispatch the invocation to the registered interceptors in the model
using Castle.Core; using Castle.MicroKernel.Context; using Castle.MicroKernel.Proxy; namespace Castle.MicroKernel { public interface IProxyFactory { object Create(IKernel kernel, object instance, ComponentModel model, CreationContext context, params object[] constructorArguments); bool RequiresTargetInstance(IKernel kernel, ComponentModel model); void AddInterceptorSelector(IModelInterceptorsSelector selector); bool ShouldCreateProxy(ComponentModel model); object Create(IProxyFactoryExtension customFactory, IKernel kernel, ComponentModel model, CreationContext context, params object[] constructorArguments); } }