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

ComponentModelDescriptorUtil

public static class ComponentModelDescriptorUtil
using Castle.Core; using System; using System.Collections.Generic; using System.ComponentModel; namespace Castle.MicroKernel.ModelBuilder { [EditorBrowsable(EditorBrowsableState.Never)] public static class ComponentModelDescriptorUtil { public static readonly string MetaDescriptorsKey = "Castle.meta-descriptors"; public static ICollection<IMetaComponentModelDescriptor> GetMetaDescriptors(this ComponentModel model, bool ensureExists) { if (model == null) throw new ArgumentNullException("model"); ICollection<IMetaComponentModelDescriptor> collection = model.ExtendedProperties[MetaDescriptorsKey] as ICollection<IMetaComponentModelDescriptor>; if ((collection == null) & ensureExists) { collection = new List<IMetaComponentModelDescriptor>(); model.ExtendedProperties[MetaDescriptorsKey] = collection; } return collection; } public static void RemoveMetaDescriptors(ComponentModel model) { model.ExtendedProperties.Remove(MetaDescriptorsKey); } } }