在工具窗口构造函数中获取DTE

时间:2016-02-03 14:07:17

标签: xaml envdte vspackage

我已经使用工具窗口构建了一个VSPackage,但遇到了问题。如果用户在VS已经运行时打开工具窗口,我点击了MyToolPackage类并且能够使用

获得DTE
(DTE)GetService(typeof(DTE));

当用户关闭VS并再次启动它时,工具窗口已经打开,我没有点击MyToolPackage,而是点击GetService始终返回null的MyToolWindow类。

有没有办法从MyToolWindow类或我选择的其他类中获取DTE对象?

提前致谢。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

更好的是,不要尝试从您的工具窗口中检索任何服务。窗口还没有被选址,因此它无法检索和查询各种服务。

您可以尝试使用Package.GetGlobalService,但正确的方法是将必需的代码放入ToolWindowPane.OnToolWindowCreated的覆盖中。在正确选择工具窗口后调用此函数。

此致