.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);}}