You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps Rest API 如何获取工作项中被分配用户的显示名称

从Azure DevOps工作项System.AssignedTo字段提取显示名称方案

字段返回规则

Azure DevOps .NET SDK 调用GetWorkItemAsync接口默认返回的System.AssignedTo字段为格式化字符串,结构固定为{显示名称} <{用户注册邮箱}>,例如李明 <liming@corp.com>;若工作项未分配处理人,该字段不会出现在返回的Fields集合中。

实现代码

你可以直接对拿到的字段值做字符串拆分获取显示名称,调整后的代码如下:

// Get client
VssConnection connection = GetVssConnection(_azureDevopsOptions);
WorkItemTrackingHttpClient workItemTrackingHttpClient = connection.GetClient<WorkItemTrackingHttpClient>();

// Define fields
string startDateField = "Microsoft.VSTS.Scheduling.StartDate";
string finishDateField = "Microsoft.VSTS.Scheduling.FinishDate";
string assignedToField = "System.AssignedTo";

// 指定需要查询的字段,减少接口返回数据量提升性能
var requiredFields = new List<string> { startDateField, finishDateField, assignedToField };
// Get work item
var workitemTask = await workItemTrackingHttpClient.GetWorkItemAsync(taskId, requiredFields);

// Get fields from work item
// 注意:日期字段默认值不要设置为0,避免类型转换错误,建议设置为DateTime.MinValue或null
var startDate = workitemTask.Fields.ContainsKey(startDateField) ? workitemTask.Fields[startDateField] : DateTime.MinValue;
var finishDate = workitemTask.Fields.ContainsKey(finishDateField) ? workitemTask.Fields[finishDateField] : DateTime.MinValue;
var assignedTo = workitemTask.Fields.ContainsKey(assignedToField) ? workitemTask.Fields[assignedToField]?.ToString() : null;

// 提取显示名称逻辑
string assignedDisplayName = string.Empty;
if (!string.IsNullOrWhiteSpace(assignedTo))
{
    int separatorIndex = assignedTo.IndexOf('<');
    if (separatorIndex > 0)
    {
        // 拆分取<符号前的内容,去除首尾空格即为显示名称
        assignedDisplayName = assignedTo.Substring(0, separatorIndex).Trim();
    }
    else
    {
        // 兼容无邮箱后缀的特殊场景
        assignedDisplayName = assignedTo.Trim();
    }
}

特殊场景说明

如果你调用GetWorkItemAsync时添加了expand: WorkItemExpand.Fields参数,接口返回的System.AssignedTo会是IdentityRef类型对象,直接取其DisplayName属性即可:

if (assignedTo is IdentityRef identityRef)
{
    assignedDisplayName = identityRef.DisplayName;
}

内容的提问来源于stack exchange,提问作者Harold G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:30:01