如何获得所有区域路径TFS API 2013
本文关键字:TFS API 2013 路径 区域 何获得 | 更新日期: 2023-09-27 18:03:54
我正试图使与TFS工作的实用程序,我有一个问题:如何在项目中获得所有可能的区域路径?
我找到了一些2010年的信息:http://geekswithblogs.net/TarunArora/archive/2011/07/10/tfs-2010-sdk-get-projects-iterations-area-path-queries-and.aspx
foreach (Node area in project.AreaRootNodes)
{
lstAreaPath.Items.Add(area.Name);
foreach (Node item in area.ChildNodes)
{
lstAreaPath.Items.Add(item.Name);
}
}
,但它没有工作,因为我没有AreaRootNodes属性在我的项目。如何在项目中获得所有区域路径?
谢谢你的主意,Daniel
正确的代码:
var wis = (WorkItemStore)Connection.ProjectCollection.GetService(typeof(WorkItemStore));
var pj = wis.Projects.Cast<Project>().FirstOrDefault(x => x.Name == projectName);
if (pj == null)
return new List<string>();
foreach (Node area in pj.AreaRootNodes)
{
resultList.Add(area.Path);
resultList.AddRange(from Node item in area.ChildNodes select item.Path);
}
我对周围的代码做了一个假设,你没有包括,但我很确定我是对的。
这里有一个假设:您通过迭代ProjectCollection
类的实例来获得您的项目。这是一个旧的泛型前集合,因此其中的所有内容都是object
类型。将你的project
实例转换为Microsoft.TeamFoundation.WorkItemTracking.Client.Project
,
var wis = x.GetClient<WorkItemStore>();
foreach (var project in wis.Projects.Cast<Project>())
{
// Your code here
}
无论如何,这种类型的问题即使在IDE中也很容易解决。如果属性不存在,代码将无法编译,因此您可以将鼠标悬停在实例上,看看它认为自己是什么类型。