Я хотел написать макрос Visual Studio или что-то подобное, которое может извлечь имя функции и вставить в предустановленное место в части отчета об ошибке. Будет понятнее, если вы посмотрите на пример
Class SampleClass
{
public void FunctionA()
{
try
{
//Do some work here
}
catch (Exception ex)
{
Logger.WriteLine(LogLevelEnum.Error, "SampleClass", "FunctionA Failed");
Logger.WriteLine(LogLevelEnum.Error, "FunctionA", ex.ToString());
}
finally
{
}
}
}
Итак, я следовал аналогичному шаблону большинства критических функций моей общей библиотеки. Я хотел бы иметь возможность вставить «FunctionA» в раздел ведения журнала во время предварительной сборки, чтобы мне не приходилось не забывать вводить правильное имя или забывать переименовывать его после копирования и вставки. Либо это можно вызвать вручную с панели инструментов или с помощью сочетания клавиш.
Итак, с чего мне начать?
Примечание:
Я считаюсь промежуточным в .Net, пишу на C # и VB уже более 3 лет, но я новичок в Macro, не против учиться.
Не беспокойтесь о самом коде и исключении, это всего лишь пример.
EDIT:
Спасибо Овидиу Пакурару и cfeduke. То, что я хотел здесь, было одним способом изменить и забыть. PostSharp будет нести издержки на каждую из этих функций, даже если исключение не выдается. Копирование из трассировки стека возможно, но в какой-то момент я также хотел бы просто записать в журнал «FunctionA Failed», не затрачивая слишком много времени на получение трассировки стека. Более того, если библиотека будет запутана, трассировка стека будет загадочной.
На самом деле была еще одна потребность в этой функции, о которой я забыл упомянуть ранее. Когда библиотека будет готова к доставке, я хотел бы изменить все имя функции на код функции, «FunctionA» может быть «0001», ссылаясь на таблицу, чтобы решить «запутанную» проблему журнала.