我正在尝试开发Visual Studio 2013 Team Foundation Server扩展。
我想打开某个用户的"查找搁置集"页面,但找不到这样做的方法。
我正在尝试使用以下代码段:
ITeamExplorer teamExplorer = (ITeamExplorer)ServiceProvider.GetService(typeof(ITeamExplorer));
if (teamExplorer != null)
{
teamExplorer.NavigateToPage(new Guid(TeamExplorerPageIds.FindShelvesets), null);
}
这将打开 FindShelf ets 页面,但它显示当前用户的搁置集。我希望它显示我可以通过参数传递的另一个用户的搁置集。
方法接受指定将打开的页面的 GUID 参数,并且它还采用上下文参数,该参数是该页面的上下文。
我假设我可以传递一个对象作为第二个参数,该参数可以覆盖 FindShelf ets 页面的默认用户。问题是我不知道那个对象应该是什么,而且我找不到任何可以帮助我的文档。我尝试传递一个包含另一个用户名的字符串,但这不起作用。
所以问题是,我如何导航到任意用户的 FindShelf ets 页面。此外,在哪里可以找到有关不同团队资源管理器页可以接受哪些上下文的一些文档?
当深入研究'Microsoft.TeamFoundation.VersionControl.Controls'程序集时,特别是'Microsoft.TeamFoundation.VersionControl.Controls.FindShelvesets.FindShelvesetsPage.InitializeModel(PageInitializeEventArgs e('方法时,你会看到它们使用一个名为'FindShelvesetsModelContext的内部类。' 作为上下文/参数(请参阅我关于这个和其他的博客文章(。而且因为它是内部的,除非你使用反射,否则你不能真正"从外部"提供它 - 如果绝对需要,这可能是你唯一的选择。但显然是一个相当丑陋和不稳定/不可靠的。