通过这取决于他们在声明的类TypeDescriptor.GetProperties()返回筛选器属性
-
22-07-2019 - |
题
嗨。我有以下的情况。
我想使用TypeDescriptor得到某种类型的属性。在继承层次的类型的深度可能会有所不同。我只是想在类型本身,而不是在其父母(基地)声明的属性。问题是,当我叫TypeDescriptor.GetProperties(),它将返回的一切宣告了继承层次多达对象。
我只看到了,我可以过滤通过属性的输出,但我不希望添加其他属性的属性在我的类型只是为了这个。让他们通过反射和不使用TypeDescriptor会做我想做的,但不是我的选择,因为某些属性会在某个时刻被动态地添加到该类型。
任何想法?如果问题是不明确的,我可以提供一个例子。
解决方案
可以使用ComponentType
属性过滤性能:
var properties = from p in TypeDescriptor.GetProperties(x).Cast<PropertyDescriptor>()
where p.ComponentType == x.GetType()
select p;
其他提示
你就不能修改ICustomTypeDescriptor
的实施,以反映您所期望的行为?
不隶属于 StackOverflow