本文介绍了获取CodeElement的Access属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为VS 2010写一个加载项。找不到问题的答案-如果CodeElement拥有AccessElement属性,我该如何获取它。

I'm writing an Add-in for VS 2010. Can't find answer for a question - How can i get the Access property of a CodeElement if it has that one.

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

I was trying reflection, but no results.Ex. CodeElement is a class method

public void GetAccess (CodeElement codeElement)

{

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

}

但是它不起作用。

请帮助!

推荐答案

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

Access is only available on some types of CodeElements, so you'll need to check for the type of CodeElement you have, cast to the specific type and then retrieve the property.

示例:

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

这篇关于获取CodeElement的Access属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-15 08:13