Как запустить запрос «журнал(все параметры)» в начале всех методовC#

Место общения программистов C#
Anonymous
Как запустить запрос «журнал(все параметры)» в начале всех методов

Сообщение Anonymous »

Я работаю над проектом C#, в котором все используют ссылку NLog для ведения журнала.
В результате я могу добавить линейный журнал везде в проекте. Debug("...") и будут показаны некоторые журналы.
Один из моих коллег написал проект, применив множество классов и методов, но журналирование слишком мало. Мне бы хотелось, чтобы каждый метод запускал следующую строку в начале своего выполнения:

Код: Выделить всё

log.Debug([*]);  // all parameters have a ToString() method
Чтобы добиться этого, я думаю о каком-то базовом методе, например этом (псевдокод):

Код: Выделить всё

private  base_method(...){
startup :
string output = "";
for each (param) in GetParameters():
output += ", " + param.ToString();
log.Debug(, output);
}
Затем я делаю следующее для каждого существующего метода:

Заменить:

Код: Выделить всё

private void Method1 (int i1, int i2, string S1, SomeClass obj1)
{ ... }
public void Method2 ()
{ ... }
Автор:

Код: Выделить всё

private void Method1 (int i1, int i2, string S1, SomeClass obj1) : base_method
{ ... }
public void Method2 () : base_method
{ ... }
Чтобы журналирование было более читабельным, я бы использовал отступы на основе количества кадров стека вызовов, как описано в этом URL-адресе, но давайте сначала начнем работать с этим.
Для этого мне нужно следующее:
  • Как получить полный список входных параметров случайного метода?
  • Как я могу упомянуть, что что-то нужно сделать в начале метода и как мне наследовать один метод от базовой функции?
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/678 ... ll-methods

Вернуться в «C#»