#c# #visual-studio-2010 #add-in #vs-extensibility
#c# #visual-studio-2010 #надстройка #vs-расширяемость
Вопрос:
В надстройке VS2010 на C #, как вы получаете имя и сигнатуру метода, в котором в данный момент находится ваш курсор?
Я хочу создать надстройку, которая при запуске получает имя и подпись текущего метода, а затем добавляет сообщение журнала «вход» и «выход» для этого метода.
Пример:
Перед:
public void TheMethod(string text)
{
...
return text;
}
После:
public void TheMethod(string text)
{
log.Trace("public void TheMethod( string text =" text " ) - in");
...
log.Trace("public void TheMethod( ... ) - out with text = " text );
return text;
}
Существуют ли какие-либо руководства по надстройке / ссылки, которые охватывают получение информации о методе, просмотр верхней и нижней части метода, вставку текста и т.д.? Я пробовал поискать в Google, и я не получаю myc, который был бы полезен.
Комментарии:
1. Не то чтобы это помогло вам сейчас, но C # 5 будет иметь специальные атрибуты, которые позволяют вам получать имена методов, имена файлов и номера строк в качестве аргументов методов. Довольно интересная вещь.
Ответ №1:
Конкретно обращаясь к вашему требованию ведения журнала, это то, для чего подходит аспектно-ориентированное программирование. PostSharp, например, может выполнять действия с границами, которые вы ищете. Смотрите здесь пример того, как это делается с помощью этой платформы.
Ответ №2:
Возможно, вы захотите рассмотреть нечто, называемое аспектно-ориентированным подходом. Смотрите Аспектно-ориентированное программирование: когда начинать использовать фреймворк? для хорошего начала.