2011-05-16 44 views
4

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

我在尝试反射,但没有结果。例如, CodeElement是一个类的方法

public void GetAccess (CodeElement codeElement) 

{ 

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

} 

但它不工作..

帮助,请!

回答

3

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

实施例:

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