我是TFS API的新手,我正在使用C#代码,如下所述: https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/client-libraries/samples?view=azure-devops
我被设法在我的TFS测试服务器上运行代码,并很容易地获得查询结果。但是,当我尝试获取工作项链接详细信息时,我找不到正确的方法。 当我在代码执行过程中将对象放大为1个对象时,我看到Links属性设置为null,而TFS中的“实际”工作项作为链接的WI作为父对象。知道如何通过WI链接循环获取链接的WI详细信息吗? 在此先感谢:-)
答案 0 :(得分:1)
您必须在GetWorkItemAsync中设置expand属性:
GetWorkItemAsync(Id, expand: WorkItemExpand.Relations).Result
您可以在“关系”列表中找到所有链接。链接不包含ID,但是您可以从链接URL中提取它。父类型是Rel成员中的 System.LinkTypes.Hierarchy-Reverse 值。关系列表示例:
var wi = GetWorkItemWithRelations(wiId);
if (wi.Relations != null)
{
foreach (var wiLink in wi.Relations)
Console.WriteLine("{0,-40}: {1}", wiLink.Rel, ExtractWiIdFromUrl(wiLink.Url));
}
static int ExtractWiIdFromUrl(string Url)
{
int id = -1;
string splitStr = "_apis/wit/workItems/";
if (Url.Contains(splitStr))
{
string [] strarr = Url.Split(new string[] { splitStr }, StringSplitOptions.RemoveEmptyEntries);
if (strarr.Length == 2 && int.TryParse(strarr[1], out id))
return id;
}
return id;
}
您可以在此处找到其他链接类型:https://docs.microsoft.com/en-us/azure/devops/boards/queries/link-type-reference?view=azure-devops&viewFallbackFrom=vsts