<PackageReference Include="Castle.Windsor" Version="5.1.0-beta001" />

ListConverter

using Castle.Core.Configuration; using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; namespace Castle.MicroKernel.SubSystems.Conversion { [Serializable] public class ListConverter : AbstractTypeConverter { public override bool CanHandleType(Type type) { if ((object)type != typeof(IList)) return (object)type == typeof(ArrayList); return true; } public override object PerformConversion(string value, Type targetType) { throw new NotImplementedException(); } public override object PerformConversion(IConfiguration configuration, Type targetType) { List<object> list = new List<object>(); Type convertToType = GetConvertToType(configuration); foreach (IConfiguration item in (List<IConfiguration>)configuration.get_Children()) { list.Add(base.Context.Composition.PerformConversion(item.get_Value(), convertToType)); } return list; } private Type GetConvertToType(IConfiguration configuration) { string text = ((NameValueCollection)configuration.get_Attributes())["type"]; Type result = typeof(string); if (text != null) result = base.Context.Composition.PerformConversion<Type>(text); return result; } } }