C # VS 2005: Как получить открытый список членов класса во время выполнения? - PullRequest
2 голосов
/ 04 декабря 2008

Я пытаюсь получить список переменных класса 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 ]

9 голосов
/ 04 декабря 2008

Если вы после открытых полей просто используйте tt.GetType().GetFields()

Если вам нужны другие члены, используйте GetProperties () , GetMethods () , GetEvents () и т. Д. Для конкретных или GetMembers ( ) чтобы получить их все.

У каждого метода есть перегрузка, принимающая BindingFlags, если вы хотите получить доступ к непубличным элементам или ограничить поиск статическими элементами (или просто элементами-экземплярами).

1 голос
/ 04 декабря 2008
foreach (MemberInfo mi in tt.GetType().GetMembers()) ...
...