或更具体地说
1) 我可以为属性分配类型描述符吗
2)如果是这样,在运行时获取类型转换器的最佳方法是什么。
基本上我有使用反射填充的配置对象。到目前为止,这仅适用于简单类型(字符串、整数、日期时间),但我想支持将逗号分隔列表转换为列表。
到目前为止,我已经通过从 ConvertableList<T>
派生自定义类型“List<T>
”来实现这一目标。并用我的自定义类型转换器装饰它。
最佳答案
您可以将 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);
关于.net - 是否可以覆盖现有 .net 类型的类型描述符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4713177/