VS2010 Extension实践(3)——实现自定义配置

在之前的两篇曾提到通过VSSDK(MSDN也叫VSX)来拓宽思路,实现一些MEF Extension所不能做到的功能,比如获取IVsUIShell服务来执行Command等等,这里我给各位看官展示如何通过VSX提供自定义配置到IDE里面。

首先创建一个Package工程,找到里面的XX_Package.cs,要提供自定义配置到IDE,需要在这里通过ProviderProfile和ProviderOptionPage告诉Package两个重要信息:此Package有配置信息(Profiler)以及对应该配置信息的界面,这里我从我的GotoDef extension工程里截了一张图:

ProvideProfiler/ProvideOptionPage attributes usage, click to enlarge

其中ProvideProfile告诉Package提供的Profiler的相关信息:关联的提供该Profiler的类型、分类名称、页面名称、资源ID等等,VS在需要时会把保存的信息(默认在注册表里)读取并反序列化成关联的类型的对象,在关闭Option对话框或者确认应用配置时,会把配置信息对象序列化保存(默认在注册表)。

另一个ProvideOptionPage来指定配置信息对象和界面,它是从DialogPage派生,需要注意的是需要为它提供Guid和ClassInterface类型;默认情况下,显示该配置对象使用PropertyGrid,当然,可以通过override Window属性来自定义自己的UI,比如GoToDef中的配置UI,如下图:

GoToDefOptPage

 

完成以后在VS Extension工程中引用这个Package并添加到VSIX输出中,这样就可以使用配置了:

Use_GoToDef_Opt

Use_GoToDef_Opt2

至此,为VS Extension提供自定义配置的工作就完成了,具体效果可以参考我的上一篇帖子:

http://www.cnblogs.com/winkingzhang/archive/2010/02/26/1673995.html
Visual Studio .NET 2010 Options

posted @ 2010-06-13 12:33  winkingzhang  阅读(2549)  评论(1编辑  收藏  举报