Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用IdentityManagementService将Tfs工作项分配到电子邮件地址,同时对多个工作项具有相同的DisplayName值?_C#_Tfs - Fatal编程技术网

C# 如何使用IdentityManagementService将Tfs工作项分配到电子邮件地址,同时对多个工作项具有相同的DisplayName值?

C# 如何使用IdentityManagementService将Tfs工作项分配到电子邮件地址,同时对多个工作项具有相同的DisplayName值?,c#,tfs,C#,Tfs,您好,我正在使用以下代码获取工作项的AssignedTo字段集合的电子邮件地址。我这里的问题是,有太多工作项的AssignedTo字段值包含相同的DisplayName值。这就是为什么我出现错误的原因 “找到多个与“xxxxxx”匹配的标识。请指定以下标识之一” 请告诉我如何消除这个错误 TfsTeamProjectCollection projCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(tf

您好,我正在使用以下代码获取工作项的AssignedTo字段集合的电子邮件地址。我这里的问题是,有太多工作项的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);
    }
tfstreamprojectcollection projCollection=tfstreamprojectcollectionfactory.GetTeamProjectCollection(tfsUri);
IIdentialManagementService ims=projCollection.GetService();
WorkItemStore WIS=(WorkItemStore)projCollection.GetService(typeof(WorkItemStore));
WorkItemCollection WIC=WIS.Query(workItemQuery);
foreach(WIC中的工作项目wi)
{                
var workItemIdentity=ims.ReadIdentity(IdentitySearchFactor.DisplayName,(wi.Fields[CoreField.AssignedTo].OriginalValue).ToString(),MembershipQuery.Direct,ReadIdentityOptions.ExtendedProperties);
}
如果捕获到“MultipleIdentitiesFoundException”异常,则该变量将为您提供选择唯一标识的选项

catch(MultipleIdentitiesFoundException ex){var workItemIdentity = ex.MatchingIdentities[0].UniqueName;} 
这只是一个解决办法。在那一刻,哪一个是有效的身份并不难。但是,如果相同的使用在两个不同的域中有电子邮件地址,则通常会发生这种情况。 希望能有帮助