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

AbstractFacility

public abstract class AbstractFacility : IFacility, IDisposable
Base class for facilities.
using Castle.Core.Configuration; using System; namespace Castle.MicroKernel.Facilities { public abstract class AbstractFacility : IFacility, IDisposable { private IConfiguration facilityConfig; private IKernel kernel; protected IConfiguration FacilityConfig => facilityConfig; protected IKernel Kernel => kernel; protected abstract void Init(); protected virtual void Dispose() { } void IDisposable.Dispose() { Dispose(); } void IFacility.Init(IKernel kernel, IConfiguration facilityConfig) { this.kernel = kernel; this.facilityConfig = facilityConfig; Init(); } void IFacility.Terminate() { Dispose(); kernel = null; } } }