PropertySow从其PropertyDescriptor获取PropertyInfo

时间:2013-08-15 13:10:30

标签: c# datatable propertyinfo propertydescriptor

如何从PropertyDescriptor获取DataRow的PropertyInfo。

//pd is a PropertyDescriptor
var propertyinfo = pd.ComponentType.GetProperty(pd.Name);

上面的代码适用于列表集合,但在使用DataTable时它不起作用。

对此有什么想法吗?

1 个答案:

答案 0 :(得分:3)

PropertyInfo是反射世界,其中类型具有显式CLI属性。 DataTable 不属于那个世界;它使用System.ComponentModel灵活属性模型,TypeDescriptorPropertyDescriptor等。基本上:在CLI意义上没有属性PropertyDescriptor可用于(并用于)以更灵活,动态的方式描述“属性”,其中布局未指定为类型,但是是自定义的,通常在运行时即时运行

所以不是:你不能这样做。这个问题没有意义;或者至少在一般情况下它没有。还有“类型化数据集”,但坦率地说,我强烈建议远离它们。

顺便提一下,您可以为任何类型创建自己的伪属性 - 这里有扩展点(TypeDescriptorITypedListICustomTypeDescriptor,{ {1}}等);但只有明确使用TypeConverter的代码才能看到它们。