编辑:看起来他们这样做不是一个简单的方法。考虑到类结构的大小,foreach方法似乎是实现我目标的最简单(可能也是最好的)方法。我把问题留到开头,以防有人想出绝妙的主意。:)
嗨,大家好,
我有一个与此类似的类列表:
class A
{
...
}
class B
{
...
public List<A> ListOfA {...}
}
class C
{
...
public List<A> ListOfA {...}
public List<B> ListOfB {...}
}
class D
{
...
public List<A> ListOfA {...}
public List<B> ListOfB {...}
public List<C> ListOfC {...}
}
[...]
我需要在最外层的类(在这种情况下是d)中创建一个具有以下签名的方法:
public IEnumerable<A> GetListOfA();
它将递归地(yield)返回包含在d实例中的a实例的列表。
当前的实现是一个硬编码的foreach列表。我希望通过动态地查看每个类和子类的属性,使其更加灵活。
为了提供更多的细节,类结构是从fxcop xml报告创建的。fxcop消息可以链接到命名空间、模块、类型、成员等。XML被反序列化为此类结构,并且可以在结构的不同级别找到消息。
我想要实现的实际上是与xpath等价的
//A
在类结构上。
您对如何实现这种方法有什么想法吗?
非常感谢你的帮助