2008-12-04 27 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