#visual-studio #add-in #extensibility #envdte
#visual-studio #надстройка #расширяемость #envdte
Вопрос:
Я пишу надстройку для VS 2010. Не могу найти ответ на вопрос — Как я могу получить свойство доступа к CodeElement, если оно у него есть.
Я пытался отразить, но безрезультатно. Пример. CodeElement — это метод класса
public void GetAccess (CodeElement codeElement)
{
object code = codeElement;
Type t = code.GetType();
t.GetProperty("Access") = vsCMAccess.vsCMAccessPublic;
}
Но это не работает..
Помогите, пожалуйста!
Ответ №1:
Доступ доступен только для некоторых типов CodeElements, поэтому вам нужно будет проверить тип имеющегося у вас CodeElement, привести к определенному типу и затем извлечь свойство.
Пример:
if (codeElement.Kind == vsCMElementFunction)
{
return ((CodeFunction)codeElement).Access;
}
else if (codeElement.Kind == vsCMElementProperty)
{
return ((CodeProperty)codeElement).Access;
}