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

Castle.MicroKernel.ComponentActivator.AbstractComponentActivator

Abstract implementation of IComponentActivator. The implementors must only override the InternalCreate and InternalDestroy methods in order to perform their creation and destruction logic.
namespace Castle.MicroKernel.ComponentActivator { public abstract class AbstractComponentActivator : IComponentActivator { public IKernelInternal Kernel { get; } public ComponentModel Model { get; } public ComponentInstanceDelegate OnCreation { get; } public ComponentInstanceDelegate OnDestruction { get; } protected AbstractComponentActivator(ComponentModel model, IKernelInternal kernel, ComponentInstanceDelegate onCreation, ComponentInstanceDelegate onDestruction); protected abstract object InternalCreate(CreationContext context); protected abstract void InternalDestroy(object instance); public virtual object Create(CreationContext context, Burden burden); public virtual void Destroy(object instance); protected virtual void ApplyCommissionConcerns(object instance); protected virtual void ApplyConcerns(IEnumerable<ICommissionConcern> steps, object instance); protected virtual void ApplyConcerns(IEnumerable<IDecommissionConcern> steps, object instance); protected virtual void ApplyDecommissionConcerns(object instance); } }