Здравствуйте. Поступила задача написать универсальный логгер для методов, а именно логгер должен собирать информацию о вызванном методе, его параметрах и значениях этих параметров на момент вызова, пробовал делать через рефлексию, и это работает (в 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());
}