【问题标题】:How to get Tfs WorkItem AssignedTo email address using IdentityManagementService while having same DisplayName value for multiple WorkItems?如何使用 IdentityManagementService 获取 Tfs WorkItem AssignedTo 电子邮件地址,同时对多个 WorkItem 具有相同的 DisplayName 值?
【发布时间】:2015-09-15 22:44:00
【问题描述】:

您好,我正在使用以下代码获取 WorkItem 的 AssignedTo 字段集合的电子邮件地址。我的问题是有太多 WorkItems 包含与其 AssignedTo 字段值相同的 DisplayName 值。这就是我收到错误的原因

“找到多个与‘xxxxxx’匹配的身份。请指定以下身份之一”

请建议我如何摆脱这个错误。

    TfsTeamProjectCollection projCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(tfsUri);
    IIdentityManagementService ims = projCollection.GetService<IIdentityManagementService>();
    WorkItemStore WIS = (WorkItemStore)projCollection.GetService(typeof(WorkItemStore));
    WorkItemCollection WIC = WIS.Query(workItemQuery);      
    foreach (WorkItem wi in WIC)
    {                
        var workItemIdentity = ims.ReadIdentity(IdentitySearchFactor.DisplayName,(wi.Fields[CoreField.AssignedTo].OriginalValue).ToString(), MembershipQuery.Direct, ReadIdentityOptions.ExtendedProperties);
    }

【问题讨论】:

    标签: c# tfs


    【解决方案1】:

    如果您捕获“MultipleIdentitiesFoundException”异常,该变量会为您提供选择唯一身份的选项。

    catch(MultipleIdentitiesFoundException ex){var workItemIdentity = ex.MatchingIdentities[0].UniqueName;} 
    

    这只是一种解决方法。在那一刻,哪个是有效身份并不难。但是,如果同一用户在两个不同的域中具有电子邮件地址,则通常会发生这种情况。 希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      • 2015-03-14
      • 1970-01-01
      • 2020-10-28
      • 2019-03-20
      • 1970-01-01
      • 2014-12-11
      相关资源
      最近更新 更多