@Benchstyle

Как получить значения всех переменных метода?

Здравствуйте. Поступила задача написать универсальный логгер для методов, а именно логгер должен собирать информацию о вызванном методе, его параметрах и значениях этих параметров на момент вызова, пробовал делать через рефлексию, и это работает (в Values появляются значения всех переменных), только если вручную передать все параметры в объект, что не хорошо, т.к. в различных методах параметры будут разными, подскажите, может есть другой вариант?

public void Method1(string tableName, string tablePassword, object p1, object p2, object p3, bool isOneParam, string[] propNames)
        {
            string MethodName = MethodBase.GetCurrentMethod().Name;
            var MethodParams = MethodBase.GetCurrentMethod().GetParameters();

            List<string> Names = new List<string>();
            foreach (var par in MethodParams) {
                Names.Add(par.Name);               
            };

            List<string> Values = new List<string>();
            var hack = new { tableName, tablePassword, p1, p2, p3, isOneParam, propNames };

            foreach (PropertyInfo pi in hack.GetType().GetProperties())
            {
                Values.Add(pi.GetValue(hack, null).ToString());
            }
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы