.NET 4.x Получить значения переменных в классе зная их имена - C#

Узнай цену своей работы

Формулировка задачи:

Для удобной отладки внутри скомпилированного приложения я использую динамическое компилирование кода, в одном из методов хотел получить значения всех переменных и констант в классе.
Type BaseType = typeof(BotBase);
var BaseMemberInfo = BaseType.GetMembers();
BotFunc.Addlog(string.Format("Класс {0} содержит: ", BaseType));
for (int index = 0; index < BaseMemberInfo.Length; index++){
MemberInfo t = BaseMemberInfo[index];
BotFunc.Addlog(string.Format("[{0}] {1}", index , t.Name));}
Так получаю все имена переменных и методов класса Скриншот вывода:

Решение задачи: «.NET 4.x Получить значения переменных в классе зная их имена»

textual
Листинг программы
Type BaseType = typeof(BotBase);
FieldInfo myf;
var BaseMemberInfo = BaseType.GetMembers();
BotFunc.Addlog(string.Format("Класс {0} содержит: ", BaseType));
string name = string.Empty;
for (int index = 0; index < BaseMemberInfo.Length; index++){
try{
MemberInfo t = BaseMemberInfo[index];
name = t.DeclaringType + " " + t.MetadataToken + " " + t.ReflectedType + " " + t.Module;
myf = typeof(BotBase).GetField(t.Name);
string value = myf.GetValue(null).ToString();
BotFunc.Addlog(string.Format("[{0}] {1} = {2}", index, t.Name, value));}
catch (Exception ex){
MessageBox.Show(ex.Message + Environment.NewLine + name);}}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы