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

ExtendedPropertiesDescriptor

using Castle.Core; using Castle.Core.Internal; using Castle.MicroKernel.Registration; using System; using System.Collections; namespace Castle.MicroKernel.ModelBuilder.Descriptors { public class ExtendedPropertiesDescriptor : IComponentModelDescriptor { private readonly IDictionary dictionary; private readonly Property[] properties; public ExtendedPropertiesDescriptor(params Property[] properties) { this.properties = properties; } public ExtendedPropertiesDescriptor(IDictionary dictionary) { this.dictionary = dictionary; } public void BuildComponentModel(IKernel kernel, ComponentModel model) { } public void ConfigureComponentModel(IKernel kernel, ComponentModel model) { if (dictionary != null) { IDictionaryEnumerator enumerator = dictionary.GetEnumerator(); try { while (enumerator.MoveNext()) { DictionaryEntry dictionaryEntry = (DictionaryEntry)enumerator.Current; model.ExtendedProperties[dictionaryEntry.Key] = dictionaryEntry.Value; } } finally { (enumerator as IDisposable)?.Dispose(); } } if (properties != null) properties.ForEach(delegate(Property p) { model.ExtendedProperties[p.Key] = p.Value; }); } } }