2013-10-09 24 views
0

我有兩個VSIX包(VS2010 SDK),其中一個包含LanguageService和一個ProjectPackage(基於項目的託管包框架)用於我的語言。現在我需要建立某種通信通道,LanguageService可以從ProjectPackage中檢索附加信息。在ProjectPackage,信息通過一個工具窗口,可以使用VSIX LanguageService FindToolWindow(...)返回null

package.FindToolWindow(typeof(HierarchyViewerWindow), 0, false) as HierarchyViewerWindow; 

的LanguageService來自同一個包基類的繼承ProjectPackage被retieved是可用的,所以我想我在這裏可以使用相同的機制。儘管如此,通話還是返回null

所以基本的問題是我是否做錯了什麼,或者出於某種原因這是不可能的......或者如果有更好的方法來建立LanguageService和另一個VSIX包之間的通信。

回答

1

您的ProjectPackage可以Provide a Custom Service和您的LanguageService可以通過標準GetService調用訪問它。

+0

正是我在尋找的東西。我猜想一個toolwindow對於創建它的包來說始終是本地的? – BennyBarns

+0

工具窗口應該是全局的。確保它的類型是全局的,並且在搜索它時已經創建。 –