<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

Add the selector to the list of selectors that can affect interceptor's decisions in the container.

object Create(IKernel kernel, object instance, ComponentModel model, CreationContext context, object[] constructorArguments)

Implementors must create a proxy based on the information exposed by ComponentModel

object Create(IProxyFactoryExtension customFactory, IKernel kernel, ComponentModel model, CreationContext context, object[] constructorArguments)

Implementor should check the component model and determine if the caller must pass on the component instance to the proxy

Determines whatever we need to create a proxy for this model