我正在尝试在运行时获取类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中执行此操作
非常感谢
答案 0 :(得分:9)
如果您正在使用公共字段,请使用tt.GetType().GetFields()
如果您需要其他成员,请使用GetProperties(),GetMethods(),GetEvents()等来获取特定成员,或使用GetMembers()来获取所有成员。
如果您想要访问非公共成员,或者将搜索限制为静态成员(或仅限于实例成员),则每个方法都有一个接受BindingFlags的重载。
答案 1 :(得分:1)
foreach (MemberInfo mi in tt.GetType().GetMembers()) ...