AbstractFacility
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;
}
}
}