thrall 发表于 2013-5-7 11:10:00

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

在之前的两篇曾提到通过VSSDK(MSDN也叫VSX)来拓宽思路,实现一些MEF Extension所不能做到的功能,比如获取IVsUIShell服务来执行Command等等,这里我给各位看官展示如何通过VSX提供自定义配置到IDE里面。
首先创建一个Package工程,找到里面的XX_Package.cs,要提供自定义配置到IDE,需要在这里通过ProviderProfile和ProviderOptionPage告诉Package两个重要信息:此Package有配置信息(Profiler)以及对应该配置信息的界面,这里我从我的GotoDef extension工程里截了一张图:

http://images.cnblogs.com/cnblogs_com/winkingzhang/117454/o_Tool_Option_GotoDef_Proj.png

其中ProvideProfile告诉Package提供的Profiler的相关信息:关联的提供该Profiler的类型、分类名称、页面名称、资源ID等等,VS在需要时会把保存的信息(默认在注册表里)读取并反序列化成关联的类型的对象,在关闭Option对话框或者确认应用配置时,会把配置信息对象序列化保存(默认在注册表)。
另一个ProvideOptionPage来指定配置信息对象和界面,它是从DialogPage派生,需要注意的是需要为它提供Guid和ClassInterface类型;默认情况下,显示该配置对象使用PropertyGrid,当然,可以通过override Window属性来自定义自己的UI,比如GoToDef中的配置UI,如下图:

http://images.cnblogs.com/cnblogs_com/winkingzhang/WindowsLiveWriter/VS2010Extension3_9A81/GoToDefOptPage_thumb.png

完成以后在VS Extension工程中引用这个Package并添加到VSIX输出中,这样就可以使用配置了:
http://images.cnblogs.com/cnblogs_com/winkingzhang/WindowsLiveWriter/VS2010Extension3_9A81/Use_GoToDef_Opt_thumb.png

http://images.cnblogs.com/cnblogs_com/winkingzhang/WindowsLiveWriter/VS2010Extension3_9A81/Use_GoToDef_Opt2_thumb.png
至此,为VS Extension提供自定义配置的工作就完成了,具体效果可以参考本系列上一篇帖子:
http://www.cnblogs.com/powertoolsteam/archive/2010/09/07/1820457.html


http://images.cnblogs.com/cnblogs_com/winkingzhang/117454/o_options.png
页: [1]
查看完整版本: VS2010 Extension实践(3)——实现自定义配置