You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VS2022扩展中获取SQL Server Object Explorer的服务器与数据库列表

获取VS 2022中SQL Server Object Explorer的服务器/数据库列表

我正在编写VS 2022扩展,想要获取SQL Server Object Explorer中的服务器/数据库列表。该窗口由SQL Server Data Tools提供,并非Server Explorer窗口。

  • 已知该功能可实现:我使用的一款商业扩展具备此能力,但它不开源,无法获知具体实现方式。
  • 尚未找到相关公开API,怀疑该API是非公开的。
  • 希望获取可从全局服务提供者中检索到的服务名称,以实现此访问;或是可编译的示例代码(下方代码无法编译)。
  • 若有人知晓VS会话间该信息的存储位置,即便没有公开API也会有所帮助!(十年前的相关问题给出的信息现已失效,我已核实)

我找到一段示例代码,但无法编译,且不清楚它为何能编译——因为IVsDataExplorerConnectionManager并没有名为Root的属性(且由于仅能有扩展方法,无法有扩展属性,因此并非缺少项目程序集的问题!)

var connectionManager = serviceProvider.GetService(typeof(IVsDataExplorerConnectionManager)) as IVsDataExplorerConnectionManager;
if (connectionManager == null)
{
    Debug.WriteLine("Connection manager not found.");
    return;
}

// Get the root node of the SQL Server Object Explorer
var rootNode = connectionManager.Root;
if (rootNode == null)
{
    Debug.WriteLine("Root node not found.");
    return;
}

// Find the SQL Server node
var sqlServerNode = rootNode.Children
    .OfType<IVsDataExplorerNode>()
    .FirstOrDefault(node => node.DisplayName.Equals("SQL Server", StringComparison.OrdinalIgnoreCase));

我当然做过调研。八年前有人在此提出过相同问题,但未得到有用答案——给出的回答默认询问的是Server Explorer,但实际并非如此(当时已指出这一点)。

内容的提问来源于stack exchange,提问作者Ann L.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 21:42:49