PropertyInfo for a DataRow from its PropertyDescriptor



如何从DataRow的PropertyDescriptor中获取其PropertyInfo。

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

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

你知道吗?

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

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

顺便说一句,您可以为任何类型发明自己的伪属性——这有扩展点(TypeDescriptorITypedListICustomTypeDescriptorTypeConverter等);但只有明确使用CCD_ 11的代码才会看到它们。

DataView是在DataTable:上构建的

DataView viewData=表。DefaultView;

由于DataView实现了ITypedList,因此可以从中获得PropertyDescriptors的集合:

(查看为ITypedList).GetItemProperties(null)

相关内容

  • 没有找到相关文章

最新更新