C#VS 2005:如何在运行时获取类的公共成员列表?

时间:2008-12-04 07:32:57

标签: c# reflection typeof

我正在尝试在运行时获取类memeber变量列表。我知道这可能是使用typeof和反射。但找不到一个例子。请有人为我照亮。

这是伪代码示例:

Class Test01
{ 
 public string str01;
 public string str02;
 public int myint01;
}

我想要这样的东西(伪代码):

Test01 tt = new Test01();
foreach(variable v in tt.PublicVariableList)
{
   debug.print v.name;
   debug.print v.type;
}

请帮我弄清楚如何在C#VS2005中执行此操作

非常感谢

2 个答案:

答案 0 :(得分:9)

如果您正在使用公共字段,请使用tt.GetType().GetFields()

如果您需要其他成员,请使用GetProperties()GetMethods()GetEvents()等来获取特定成员,或使用GetMembers()来获取所有成员。

如果您想要访问非公共成员,或者将搜索限制为静态成员(或仅限于实例成员),则每个方法都有一个接受BindingFlags的重载。

答案 1 :(得分:1)

foreach (MemberInfo mi in tt.GetType().GetMembers()) ...