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

DelegatingModelDescriptor

using Castle.Core; using System; namespace Castle.MicroKernel.ModelBuilder.Descriptors { public class DelegatingModelDescriptor : IComponentModelDescriptor { private readonly Action<IKernel, ComponentModel> builder; private readonly Action<IKernel, ComponentModel> configurer; public DelegatingModelDescriptor(Action<IKernel, ComponentModel> builder = null, Action<IKernel, ComponentModel> configurer = null) { this.builder = builder; this.configurer = configurer; } public void BuildComponentModel(IKernel kernel, ComponentModel model) { if (builder != null) builder(kernel, model); } public void ConfigureComponentModel(IKernel kernel, ComponentModel model) { if (configurer != null) configurer(kernel, model); } } }