【发布时间】:2021-10-25 03:03:59
【问题描述】:
在 c# 中,我有一个带有属性的类,它返回 IEnumerables。
public class MyClass
{
public IEnumerable<MyPropClass1> Prop1 { get { return _prop1; } }
public IEnumerable<MyPropClass2> Prop2 { get { return _prop2; } }
public IEnumerable<AnotherClassAltogether> Prop3 {get {return _prop3; } }
...
}
假设 MyPropClass1 和 MyPropClass2 都从 MyPropBaseClass 继承,但 AnotherClassAltogether 没有。
从 MyClass 获取所有属性的最简单方法是什么,这些属性要么是某个类的 IEnumerable,要么是从该类继承的某个类的 IEnumerable?
例如如果我想在 MyClass 中查询基于 IEnumerables 的属性,模板化为基于 MyPropBaseClass 的东西,那么它应该返回 Prop1 和 Prop2
为了更清楚(希望解决近距离投票),回答这个问题的伪函数将类似于:
var properties = GetIEnumerablePropertiesOfType(typeof(MyClass), typeof(MyPropBaseClass))
这将返回包含 Prop1 和 Prop2 的属性列表(作为 System.Reflection.PropertyInfo 的枚举)
【问题讨论】:
标签: c# reflection