Я хотел бы войти в начало и окончание метода, но код грязный и трудно читать:как добавить код в начале и в конце каждого метода во время компиляции
void mymethod()
{
LogUtility.EnteringMethod();
//dowork
LogUtility.EXitingMethod();
}
I хотел бы преобразовать выше, чтобы быть просто
void mymethod()
{
//dowork
}
Но при компиляции/сборки во времени, я хотел бы макрос/скрипт для добавления этих LogUtility линии в каждом из моих методов.
Я знаю, что есть аспектно-ориентированное программирование, но я ищу что-то значительно менее сложное и неуклюжее.
Можете ли вы рекомендовать способ автоматического генерации кода перед компиляцией/сборкой?
Вы ищете PostSharp. – SLaks
Если вы ищете более старый подход к школе - «регистрация в качестве сквозной проблемы с инъекцией зависимостей» может быть хорошим поисковым термином (не очень близким к тому, что вы имеете в виду, но добивается аналогичной цели) I.e. http://stackoverflow.com/questions/7905110/logging-aspect-oriented-programming-and-dependency-injection-trying-to-make. –
Взгляните на рамки, например [Fody (бесплатно)] (https://github.com/Fody/Anotar) или [PostSharp (коммерческий)] (https://www.postsharp.net/diagnostics/net-logging), которые обеспечивают эту функциональность, применяя компиляцию во времени. –