是否可以让visual studio扩展访问已打开解决方案的对象?

时间:2018-03-14 23:35:37

标签: c# visual-studio visual-studio-2017 visual-studio-extensions

我想做一个扩展,它将遍历实际打开的项目的WPF或Windows窗体控件(或任何对象)。扩展是否可以访问/获取该解决方案/项目的对象?

1 个答案:

答案 0 :(得分:1)

  

扩展是否可以访问/获取该解决方案/项目的对象?

是的!你有几个选择。

1。托管包框架

该名称具有误导性,但最初的Microsoft Codeplex项目(现为available on NuGet)允许您创建简单的内容:

  • 菜单项;工具栏按钮;窗户和窗格

......或者令人兴奋的事情如下:

  • 类似于ReSharper或
  • 的东西
  • 甚至创建自己的语言

文档太糟糕了。最好的办法是查看Python MPF示例的Microsoft源代码。

当您键入或盯着您的代码时,MPF将允许您在实时中在一个漂亮的对象层次结构中迭代VS解决方案。

2。 T4模板

您甚至不需要保留当前的代码。 VS项目中的T4模板只能在解决方案编译时中查询项目。

T4模板类似于Razor语法,代码片段与模板内容交错。实际上T4在ASP.NET MVC Razor中使用而没有窥视知道。由于后者陡峭的学习曲线,你可以在MPF之前以T4语法方式启动并运行。

不幸的是,T4正准备执行代码生成,因此如果你想做的只是枚举项目,那就更有点了。