[英]How to get all Area Paths TFS API 2013
我正在嘗試制作一個用於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屬性。 我如何獲得項目中的所有區域路徑?
謝謝你的主意,丹尼爾
正確的代碼:
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中,這種類型的問題也可以輕松解決。 如果不存在該屬性,則代碼不會編譯,因此您可以將鼠標懸停在該實例上並查看其認為的類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.