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

ComponentModelConverter

Attempts to utilize an existing TypeConverter for conversion
using Castle.Core.Configuration; using System; using System.ComponentModel; using System.Reflection; namespace Castle.MicroKernel.SubSystems.Conversion { [Serializable] public class ComponentModelConverter : AbstractTypeConverter { public override bool CanHandleType(Type type) { if (type.GetTypeInfo().IsInterface) return false; return TypeDescriptor.GetConverter(type)?.CanConvertFrom(typeof(string)) ?? false; } public override object PerformConversion(string value, Type targetType) { TypeConverter converter = TypeDescriptor.GetConverter(targetType); try { return converter.ConvertFrom(value); } catch (Exception innerException) { throw new ConverterException($"""{value}""{targetType.FullName}", innerException); } } public override object PerformConversion(IConfiguration configuration, Type targetType) { return PerformConversion(configuration.get_Value(), targetType); } } }