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

MixinInspector

using Castle.Core; using Castle.Core.Configuration; using Castle.MicroKernel.Proxy; using Castle.MicroKernel.Util; using System; using System.Collections.Generic; namespace Castle.MicroKernel.ModelBuilder.Inspectors { [Serializable] public class MixinInspector : IContributeComponentModelConstruction { public void ProcessModel(IKernel kernel, ComponentModel model) { if (model.Configuration != null) { IConfiguration configuration = model.Configuration.Children["mixins"]; if (configuration != null) { List<ComponentReference<object>> list = new List<ComponentReference<object>>(); foreach (IConfiguration child in configuration.Children) { string value = child.Value; string text = ReferenceExpressionUtil.ExtractComponentName(value); if (text == null) throw new Exception($"""{value}"""); list.Add(new ComponentReference<object>(text)); } if (list.Count != 0) { ProxyOptions object = model.ObtainProxyOptions(true); list.ForEach(object.AddMixinReference); } } } } } }