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

AbstractPropertyDescriptor

using Castle.Core; using Castle.Core.Configuration; namespace Castle.MicroKernel.ModelBuilder.Descriptors { public abstract class AbstractPropertyDescriptor : IComponentModelDescriptor { public abstract void BuildComponentModel(IKernel kernel, ComponentModel model); public virtual void ConfigureComponentModel(IKernel kernel, ComponentModel model) { } protected void AddParameter(ComponentModel model, string name, IConfiguration value) { IConfiguration configuration = EnsureParametersConfiguration(model); MutableConfiguration item = new MutableConfiguration(name) { Children = { value } }; configuration.Children.Add(item); } protected void AddParameter(ComponentModel model, string name, string value) { EnsureParametersConfiguration(model).Children.Add(new MutableConfiguration(name, value)); } private IConfiguration EnsureParametersConfiguration(ComponentModel model) { IConfiguration configuration = model.Configuration.Children["parameters"]; if (configuration == null) { configuration = new MutableConfiguration("parameters"); model.Configuration.Children.Add(configuration); } return configuration; } } }