获取CodeElement的Access属性

时间:2011-05-16 08:04:43

标签: visual-studio add-in extensibility envdte

我正在为VS 2010编写一个加载项。无法找到问题的答案 - 如果有CodeElement的Access属性,我该如何获得该属性。

我正在尝试反思,但没有结果。 防爆。 CodeElement是一个类方法

public void GetAccess (CodeElement codeElement)

{

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

}

但它不起作用..

请帮助!

1 个答案:

答案 0 :(得分:3)

Access仅适用于某些类型的CodeElements,因此您需要检查您拥有的CodeElement类型,转换为特定类型,然后检索该属性。

示例:

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