簡體   English   中英

如何獲取所有區域路徑TFS API 2013

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM