大家好。我有以下情况。
我想使用 TypeDescriptor 来获取特定类型的属性。类型在继承层次结构中的深度可能会有所不同。我只想获取在类型本身而不是其父类(基类)中声明的属性。问题是,当我调用 TypeDescriptor.GetProperties() 时,它会返回在继承层次结构中向上声明到 Object 的所有内容。
我只看到我可以按属性过滤输出,但我不想为此向我的类型中的属性添加另一个属性。通过反射获取它们而不使用 TypeDescriptor 可以满足我的要求,但这不是我的选择,因为某些属性会在某个时候动态添加到类型中。
有什么想法吗?如果问题不清楚,我可以举个例子。
最佳答案
您可以使用 ComponentType
属性过滤属性:
var properties = from p in TypeDescriptor.GetProperties(x).Cast<PropertyDescriptor>()
where p.ComponentType == x.GetType()
select p;
关于c# - 根据声明的类筛选由 TypeDescriptor.GetProperties() 返回的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1443314/