【问题标题】:Open "Find shelvesets" page for specified user打开指定用户的“查找搁置集”页面
【发布时间】:2014-12-10 14:31:12
【问题描述】:

我正在尝试开发 Visual Studio 2013 Team Foundation Server 扩展。

我想为某个用户打开“查找搁置集”页面,但我找不到这样做的方法。

我正在尝试使用以下代码:

ITeamExplorer teamExplorer = (ITeamExplorer)ServiceProvider.GetService(typeof(ITeamExplorer));
if (teamExplorer != null)
{
    teamExplorer.NavigateToPage(new Guid(TeamExplorerPageIds.FindShelvesets), null);
}

这会打开 FindShelvesets 页面,但会显示当前用户的搁置集。我希望它显示可以通过参数传递的另一个用户的搁置集。

NavigateToPage 方法接受一个 GUID 参数,该参数指定要打开的页面,它还接受一个上下文参数,该参数是该页面的上下文。

我假设我可以传递一个对象作为第二个参数,该参数可以覆盖 FindShelvesets 页面的默认用户。问题是我不知道那个对象应该是什么,而且我找不到任何可以帮助我的文档。我尝试传递一个包含另一个用户名的字符串,但没有成功。

所以问题是,我如何导航到任意用户的 FindShelvesets 页面。另外,我在哪里可以找到关于不同团队资源管理器页面可以接受哪些上下文的文档?

【问题讨论】:

    标签: c# visual-studio tfs visual-studio-extensions


    【解决方案1】:

    在深入研究“Microsoft.TeamFoundation.VersionControl.Controls”程序集时,尤其是“Microsoft.TeamFoundation.VersionControl.Controls.FindShelvesets.FindShelvesetsPage.InitializeModel(PageInitializeEventArgs e)” em>' 方法,您会看到他们使用名为 'FindShelvesetsModelContext' 的内部类作为上下文/参数(请参阅my blog post about this one and others).. 因为它是内部的,所以你不能真正提供它'来自外部”,除非您使用反射 - 如果绝对需要,这可能是您唯一的选择.. 但显然是一个非常可怕且不稳定/不可靠的选择。

    【讨论】:

      猜你喜欢
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      相关资源
      最近更新 更多