您好我使用以下代码获取WorkItem的AssignedTo字段集合的电子邮件地址。我的问题是,有太多的WorkItem包含其AssignedTo字段值的相同DisplayName值。那&# 39;为什么我得到错误
"找到匹配' 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);
}
答案 0 :(得分:0)
如果捕获“MultipleIdentitiesFoundException”异常,该变量会为您提供选择唯一标识的选项。
catch(MultipleIdentitiesFoundException ex){var workItemIdentity = ex.MatchingIdentities[0].UniqueName;}
这只是一种解决方法。在那一刻,哪一个人是有效的身份是很困难的。但是,如果同一用途在两个不同的域中具有电子邮件地址,则通常会发生 希望它有所帮助。