1

我试图实现一个 TFS API 来获取所有工作项。它建立连接没有任何麻烦。但我面临的问题是它只获取第一级文件夹。实际上,我正在寻找的 fodler 在这些文件夹中。在第四层深处的某个地方。这是我尝试的代码

        string collectionUri = ConfigurationManager.AppSettings["tfsPath"].ToString();//http://myserver:8080/tfs/defaultcollection
        string teamProjectName = ConfigurationManager.AppSettings["tfsProject"];//mycompany

         VssConnection connection = new VssConnection(new Uri(collectionUri), new VssCredentials());

        // Create instance of WorkItemTrackingHttpClient using VssConnection
        WorkItemTrackingHttpClient witClient = connection.GetClient<WorkItemTrackingHttpClient>();

        List<QueryHierarchyItem> queryHierarchyItems = witClient.GetQueriesAsync(teamProjectName, depth:2).Result;

        foreach(QueryHierarchyItem qh in queryHierarchyItems )
        {
            string s = qh.Name;    
        }
        // Search for 'Special Queries' folder
        QueryHierarchyItem myQueriesFolder = queryHierarchyItems.FirstOrDefault(qhi => qhi.Name.Equals("Special Queries"));

这里 queryHierarchyItems 总是null。我尝试使用上面的 for 循环,发现它没有进入第二级文件夹。那么我该如何完成我的要求或我做错了什么

4

1 回答 1

1

如果您知道查询文件夹的路径,请使用:

var folder = witClient.GetQueryAsync(teamProject, path, depth: 1).Result;

然后,您可以使用以下内容访问该文件夹中的查询:

var queries = folder.Children.Where(x => !x.IsFolder.GetValueOrDefault());
于 2018-04-09T21:53:44.743 回答