或更具体地说
1)我可以为属性
分配类型描述符2)如果是这样,那么在运行时获取类型转换器的最佳方法是什么。
基本上我有使用反射填充的配置对象。到目前为止,这仅适用于简单类型(string,int,datetime),但我想支持将逗号分隔列表转换为List。
到目前为止,我已通过从ConvertableList<T>
派生自定义类型“List<T>
”并使用我的自定义类型转换器进行装饰来实现此目的。
答案 0 :(得分:7)
您可以将TypeConverter
与现有类型相关联,例如:
TypeDescriptor.AddAttributes(typeof(List<int>),
new TypeConverterAttribute(typeof(MyTypeConverter)));
(启动时的某个地方)
然后获取转换器,标准代码应该起作用:
TypeConverter conv = TypeDescriptor.GetConverter(typeof(List<int>));
或:
object obj = new List<int>();
...
TypeConverter conv = TypeDescriptor.GetConverter(obj);