, поэтому я пытаюсь добавить кое-что к своему выводу отладки, и в настоящее время я пытаюсь динамически получить переменные класса и значения этого. Я попробовал кое-что и заработал достаточно быстро, когда добавил код такого же класса, как этот:
var bindingFlags = BindingFlags.Instance |
BindingFlags.Static |
BindingFlags.NonPublic |
BindingFlags.Public;
Console.WriteLine("");
foreach (var variable in typeof(TestingStuff).GetFields(bindingFlags))
{
Debugger.Debug(Context.Player.GetUsername(), $"{variable.Name}: variable.GetValue(this)}");
}
Console.WriteLine("");
Это выдает следующий результат:
15:47:09 [Test1] _currentTarget:
15:47:09 [Test1] _currentlyPathing: False
15:47:09 [Test1] _moveToTest:
15:47:09 [Test1] _botName: Test_ZerGo01
Это именно то, чтоЯ хочу, но когда я пытаюсь передать эти вещи в мой фактический вывод "Отладчик", я не могу использовать this
, потому что это статический метод. Я понятия не имею, что мне следует заменить this
на.
Это мой метод "отладчика":
public static void Error(string playerName, Exception ex, Type classType = null)
{
...
if (classType != null)
{
var bindingFlags = BindingFlags.Instance |
BindingFlags.Static |
BindingFlags.NonPublic |
BindingFlags.Public;
if (classType.GetFields(bindingFlags).Length > 1)
{
message += DebuggerLine("Plugin Class Variables") + nL;
foreach (var variable in classType.GetFields(bindingFlags))
{
message += DebuggerLine(variable.Name, variable.GetValue(???).ToString()) + nL;
}
}
message += DebuggerLine() + nL;
}
...
}
Может кто-нибудь сказать, пожалуйста, что я делаю?