我添加了在服务器资源管理器的连接节点为我的VS扩展一些选项。 对于我所添加的菜单选项之一,我需要获得非常所选连接的连接字符串,所以我已经在BeforeQueryStatus事件,并在命令处理程序方法添加一些代码尝试这样做。 不过貌似我错过了,因为我想获得DataViewHierarchyAccessor的实例,我总是得到一个空值,每一次的东西。 虽然如果我做同样的事情,但在一个较低的水平节点工作正常。 我已经使用,没有运气以下代码:
IVsDataExplorerNodeSelection nodeSelection =(IVsDataExplorerNodeSelection)Package.GetGlobalService(typeof运算(IVsDataExplorerNodeSelection));
IVsUIHierarchy层次= Marshal.GetTypedObjectForIUnknown(hierarchyPtr的typeof(IVsUIHierarchy))作为IVsUIHierarchy;
有没有人做了服务器资源管理器窗口的连接节点类似的东西?
更新:
貌似我得到了这方面的一些进步,我只是尝试这样做:
EnvDTE80.DTE2 _applicationObject = GetDTE2();
UIHierarchy uih = _applicationObject.ToolWindows.GetToolWindow("Server Explorer") as UIHierarchy;
Array selectedItems = (Array)uih.SelectedItems;
if (null != selectedItems)
{
foreach (UIHierarchyItem selItem in selectedItems)
{
SelectedItem prjItem = selItem.Object as EnvDTE.SelectedItem;
string name = prjItem.Name;
}
}
现在我的问题是,如果有更好的型投selectedItems的名单? 而不是EnvDTE.SelectedItem。
提前致谢。