VisualStudio 使用 DialogPage 存储配置信息

VisualStudio 使用 DialogPage 存储配置信息

VisualStudio 使用 DialogPage 存储配置信息

——独立观察员 2018.04.01

最近在使用和修改VisualStudio扩展插件 CopyWithLocation (该插件功能为:复制代码时自动带上方法名、类名等,本人略作修改,添加带上命名空间功能)时留意到它的配置选项功能,由于该插件比较简单,所以正好借此研究一下VS插件的配置选项功能如何实现。

我在该插件的原有的相关功能处添加了一个”Test”项,以测试该功能,完整代码如下:

 

效果(点击VS菜单栏”工具”->”选项”):

 

分析:

只需添加一个类(应该是组件类模板,不过我是通过普通类模板创建的,也行),继承 Microsoft.VisualStudio.Shell.DialogPage 类,然后设置一个公共属性,即可作为一个配置项,可自动存取配置信息。

 

可在重写的 OnActivate 方法中对配置项的值进行初始化,比如为空时设置一个默认值,这样用户删除配置项的值,保存后重新打开设置窗口就可以获取默认值了。

 

然后需要在 XXXPackage.cs 文件中,使用 ProvideOptionPage 特性来指定配置页:

 

第一个参数指定配置项设置类,第二个参数是配置项名字,第三个参数是配置页(放在配置项下的)名字,效果:

 

可以设置多个ProvideOptionPage来组织配置页面:

 

效果:

 

最后,使用 Category 特性设置配置类里的属性可进行配置项的分组,未设置则分到”杂项”组:

 

效果:

 

好了,就说这么多吧。网上这方面的内容还是比较少的,希望大家多多交流。

 

打印本文