给定两个.Net类型,类型A和类型B,如何确定对类型B的所有属性调用(包括类型A的子类)?
您必须找到所有可执行成员(方法,属性,事件,构造函数)并调用MethodInfo.GetMethodBody以获取原始IL.然后解析该IL并查找对属性的访问权限.不要忘记在基类中声明虚拟方法.
祝你好运 - 6个月后见!说真的,这并不容易,听起来像是一个不寻常的要求.这里的大局是什么?
如果您不需要在执行时执行此操作,但只是想查看依赖项,您可能会发现NDepend将帮助您.(哎呀,也许NDepend公开了一个可以在执行时使用的API - 值得检查,我想.)