大家好。 我有以下的情况。
我想用一个TypeDescriptor获取某种类型的属性。 在继承层次的类型的深度可能会有所不同。 我只是想在类型本身,而不是在其父母(基地)声明的属性。 问题是,当我叫TypeDescriptor.GetProperties(),它将返回的一切宣告了继承层次可达对象。
我只看到了,我可以过滤通过属性的输出,但我不希望添加其他属性的属性在我的类型只是为了这个。 让他们通过反射和不使用TypeDescriptor会做我想做的,但不是我的选择,因为有些属性将被动态地添加到在某些时候的类型。
有任何想法吗? 如果这个问题不明确,我可以提供一个例子。
您可以过滤使用的属性ComponentType
属性:
var properties = from p in TypeDescriptor.GetProperties(x).Cast<PropertyDescriptor>()
where p.ComponentType == x.GetType()
select p;
你就不能修改的实施ICustomTypeDescriptor
,以反映您所期望的行为?
文章来源: Filter properties returned by TypeDescriptor.GetProperties() depending on the class they are declared in