You can associate TypeConverter with existing types, for example:
TypeDescriptor.AddAttributes(typeof(List<int>), new TypeConverterAttribute(typeof(MyTypeConverter)));
(somewhere during startup)
Then, to get the converter, the standard code should work:
TypeConverter conv = TypeDescriptor.GetConverter(typeof(List<int>));
or
object obj = new List<int>(); ... TypeConverter conv = TypeDescriptor.GetConverter(obj);
source share