Получить доступ к свойству CodeElement - PullRequest
4 голосов
/ 16 мая 2011

Я пишу надстройку для VS 2010. Не могу найти ответ на вопрос - Как я могу получить свойство Access для CodeElement, если оно есть.

Я пытался отразить, но результатов нет.Ex.CodeElement - это метод класса

public void GetAccess (CodeElement codeElement)

{

      object code = codeElement;
      Type t = code.GetType();
      t.GetProperty("Access") = vsCMAccess.vsCMAccessPublic;

}

Но он не работает ..

Помогите, пожалуйста!

1 Ответ

3 голосов
/ 05 октября 2011

Доступ доступен только для некоторых типов CodeElements, поэтому вам необходимо проверить тип имеющегося у вас CodeElement, привести его к конкретному типу и затем получить свойство.

Пример:

if (codeElement.Kind == vsCMElementFunction)
{
    return ((CodeFunction)codeElement).Access;
}
else if (codeElement.Kind == vsCMElementProperty)
{
    return ((CodeProperty)codeElement).Access;
}
...