如何迭代c#中在编译时不可用的第三方对象的成员

本文关键字:编译 对象 第三方 成员 何迭代 迭代 | 更新日期: 2023-09-27 18:05:47

我有一个winforms控件,它有一个父控件,是第三方。我想看看它有哪些成员

.GetType().Name给我的类型(这是LayoutTable)

问题是LayoutTable在编译时不存在,因为这是一个加载到框架中的dll,所以我需要在运行时这样做。

如果它在编译时可用,我可以这样做:

PropertyInfo[] properties = typeof(LayoutTable).GetProperties();
foreach (PropertyInfo property in properties)
    ...

来获取属性,但我如何在运行时做到这一点?

LayoutTable是基于Control的,因为我首先使用Control来访问它,所以我需要在循环其成员之前将其转换为LayoutTable。

谁能帮我一下。

如何迭代c#中在编译时不可用的第三方对象的成员

object myObj; //this can be anything
PropertyInfo[] properties = myObj.GetType().GetProperties();
foreach (PropertyInfo property in properties)
{ 
}

其余部分保持不变-根本不需要转换它,因为Reflection工作在元数据上(在运行时确定)。