快捷菜单上的Visual Studio插件访问类型

时间:2014-06-10 14:18:21

标签: c# visual-studio plugins visual-studio-2013

我尝试编写一个插件,我需要访问用户打开快捷菜单的对象。 (快捷菜单说明:http://msdn.microsoft.com/en-us/library/ms165623.aspx

示例:

public class MyPublicClass
{
  private void myMethod()
  {
    public MyClass class = new MyClass();
  }
}

如果用户右键单击类而不是我需要知道类型“MyClass”。这适用于任何类型和任何类。

到目前为止我所做的事情:

  1. 我知道如何创建插件。
  2. 尝试使用CodeElementFromPoint。 (不工作)
  3. 尝试使用http://www.mztools.com/articles/2006/MZ2006009.aspx(如果使用vsCMElementClass,则只返回MyPublicClass但不返回MyClass。)
  4. 我需要知道类型,因为我想通过反射生成一些东西。

    (我用c#编写插件)

    由于

1 个答案:

答案 0 :(得分:0)

我发现,这不可能。这也在文档中的某处提到过。使用FileCodeModel可以达到的最深点是方法级别。无法访问方法中的内容。

但是有一个很好的解决方案。您可以使用Roslyn编译器。使用这个新的开源编译器,您可以访问代码的每个类型,每个属性等。