C# 根据TypeDescriptor.GetProperties()在其中声明的类,筛选TypeDescriptor.GetProperties()返回的属性
嘿,伙计们。我有以下情况 我想使用TypeDescriptor来获取特定类型的属性。类型在继承层次结构中的深度可能会有所不同。我只想获取在类型本身中声明的属性,而不是在其父级(基)中声明的属性。问题是,当我调用TypeDescriptor.GetProperties()时,它会将继承层次结构中声明的所有内容返回给Object 我只看到我可以通过属性过滤输出,但我不想仅仅为了这个而向我的类型中的属性添加另一个属性。让它们通过反射而不使用TypeDescriptor可以实现我想要的功能,但这不是我的选择,因为某些属性将在某个时候动态添加到类型中C# 根据TypeDescriptor.GetProperties()在其中声明的类,筛选TypeDescriptor.GetProperties()返回的属性,c#,.net,reflection,typedescriptor,C#,.net,Reflection,Typedescriptor,嘿,伙计们。我有以下情况 我想使用TypeDescriptor来获取特定类型的属性。类型在继承层次结构中的深度可能会有所不同。我只想获取在类型本身中声明的属性,而不是在其父级(基)中声明的属性。问题是,当我调用TypeDescriptor.GetProperties()时,它会将继承层次结构中声明的所有内容返回给Object 我只看到我可以通过属性过滤输出,但我不想仅仅为了这个而向我的类型中的属性添加另一个属性。让它们通过反射而不使用TypeDescriptor可以实现我想要的功能,但这不是我的
有什么想法吗?如果问题不清楚,我可以提供一个示例。您是否可以修改
ICustomTypeDescriptor
的实现以反映您所需的行为?您可以使用ComponentType
属性过滤属性:
var properties = from p in TypeDescriptor.GetProperties(x).Cast<PropertyDescriptor>()
where p.ComponentType == x.GetType()
select p;
var properties=来自TypeDescriptor.GetProperties(x.Cast()中的p)
其中p.ComponentType==x.GetType()
选择p;