如何开发插件实现vs快速生成构造函数
发布网友
发布时间:2022-05-04 08:02
我来回答
共1个回答
热心网友
时间:2022-06-20 19:00
用Visual Studio 2012创建名为MyVisualStudioAddin的项目(根据向导进行设置,这里不赘述),界面如下:
核心 Connect 类
插件入口就是Connect 类,先看一下Connect的类图:
Connect 实现外接程序对象的构造函数。请将您的初始化代码置于此方法内。
OnConnection 实现 IDTExtensibility2 接口的 OnConnection 方法。接收正在加载外接程序的通知。
OnDisconnection 实现 IDTExtensibility2 接口的 OnDisconnection 方法。接收正在卸载外接程序的通知。
OnAddInsUpdate 实现 IDTExtensibility2 接口的 OnAddInsUpdate 方法。当外接程序集合已发生更改时接收通知。
OnStartupComplete 实现 IDTExtensibility2 接口的 OnStartupComplete 方法。接收宿主应用程序已完成加载的通知。
OnBeginShutdown 实现 IDTExtensibility2 接口的 OnBeginShutdown 方法。接收正在卸载宿主应用程序的通知。
QueryStatus 实现 IDTCommandTarget 接口的 QueryStatus 方法。此方法在更新该命令的可用性时调用。
Exec 实现 IDTCommandTarget 接口的 Exec 方法。此方法在调用该命令时调用。
_applicationObject 是DTE2实例,是宿主应用程序的根对象。
_addInInstance是当前插件实例,表示此外接程序的对象。
首先定义一些内部的对象,主要是自定义的命令,如下所示:
1 /// <summary>用于实现外接程序的对象。</summary>
2 /// <seealso class='IDTExtensibility2' />
3 public class Connect : IDTExtensibility2, IDTCommandTarget
4 {
5 #region 命令定义 除了FindInSolutionExplorer外,此处的命令不是根据功能来命令的,而是根据命令所出现的位置来命令的
6 private readonly string MY_COMMAND_FindInSolutionExplorer = "FindInSolutionExplorer";
7 private readonly string MY_COMMAND_Project = "cmdInProject";//在项目上
8 private readonly string MY_COMMAND_Solution = "cmdInSolution";//在解决方案上
9 private readonly string MY_COMMAND_MenuBar = "cmdInMenuBar";//在菜单栏上
10 private readonly string MY_COMMAND_CodeWindow = "cmdInCodeWindow";//代码窗口
11 private readonly string MY_COMMAND_Files = "cmdInFiles";
12 #endregion
13
14 private Command findCommand = null;
15 private CommandBarButton findCommandBarButtonButton = null;
16 private AddInLogger logger = null;
17
18 private DTE2 _applicationObject;
19 private EnvDTE.AddIn _addInInstance;
20 ......
21 }