2008-12-04 30 views
2

我想在运行时得到一个类memeber变量列表。我知道这可能使用typeof和反射。但找不到示例。请有人为我散光。C#VS 2005:如何在运行时获取类的公共成员列表?

下面是伪代码示例:

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

做到这一点非常感谢

回答

9

如果您是在公开后字段只是用tt.GetType().GetFields()

如果需要其他成员,使用GetProperties()GetMethods()GetEvents()等特定的人,或GetMembers()让他们所有。

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

+0

非常感谢。这太棒了。 – simon 2008-12-04 07:37:38

1
foreach (MemberInfo mi in tt.GetType().GetMembers()) ... 
+0

你们是不可思议的。谢谢。 – simon 2008-12-04 07:38:21