C#VS 2005:如何在运行时获取类的公共成员列表?
问题描述:
我想在运行时得到一个类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
做到这一点非常感谢
答
如果您是在公开后字段只是用tt.GetType().GetFields()
如果需要其他成员,使用GetProperties(),GetMethods(),GetEvents()等特定的人,或GetMembers()让他们所有。
如果您想访问非公共成员或将搜索限制为静态成员(或仅限实例成员),则每个方法都有一个接受BindingFlags的重载。
答
foreach (MemberInfo mi in tt.GetType().GetMembers()) ...
+0
你们是不可思议的。谢谢。 – simon 2008-12-04 07:38:21
非常感谢。这太棒了。 – simon 2008-12-04 07:37:38