通过这取决于他们在声明的类TypeDescriptor.GetProperties()返回筛选器属性

StackOverflow https://stackoverflow.com/questions/1443314

嗨。我有以下的情况。

我想使用TypeDescriptor得到某种类型的属性。在继承层次的类型的深度可能会有所不同。我只是想在类型本身,而不是在其父母(基地)声明的属性。问题是,当我叫TypeDescriptor.GetProperties(),它将返回的一切宣告了继承层次多达对象。

我只看到了,我可以过滤通过属性的输出,但我不希望添加其他属性的属性在我的类型只是为了这个。让他们通过反射和不使用TypeDescriptor会做我想做的,但不是我的选择,因为某些属性会在某个时刻被动态地添加到该类型。

任何想法?如果问题是不明确的,我可以提供一个例子。

有帮助吗?

解决方案

可以使用ComponentType属性过滤性能:

var properties = from p in TypeDescriptor.GetProperties(x).Cast<PropertyDescriptor>()
                 where p.ComponentType == x.GetType()
                 select p;

其他提示

你就不能修改ICustomTypeDescriptor的实施,以反映您所期望的行为?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top