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

CustomDependencyDescriptor

using Castle.Core; using Castle.Core.Internal; using Castle.MicroKernel.Registration; using System.Collections.Generic; namespace Castle.MicroKernel.ModelBuilder.Descriptors { public class CustomDependencyDescriptor : IComponentModelDescriptor { private readonly Arguments arguments; private readonly Property[] properties; public CustomDependencyDescriptor(Arguments arguments) { this.arguments = arguments; } public CustomDependencyDescriptor(params Property[] properties) { this.properties = properties; } public void BuildComponentModel(IKernel kernel, ComponentModel model) { } public void ConfigureComponentModel(IKernel kernel, ComponentModel model) { if (arguments != null) { foreach (KeyValuePair<object, object> argument in arguments) { model.CustomDependencies[argument.Key] = argument.Value; } } if (properties != null) properties.ForEach(delegate(Property p) { model.CustomDependencies[p.Key] = p.Value; }); } } }