如何使用CodeReviewRequest提供的信息查找Shelveset
如果我有Shelveset的名称和所有者,我可以使用以下代码成功找到它:
foreach (Shelveset shelveset in versionControlServer.QueryShelvesets(workItem. Fields["Associated Context"].Value.ToString(), "NW\\LFreeman"))
其中workItem
是CodeReviewRequest
workItem
一个实例。
我可以从workItem.Fields["Associated Context"]
获取CodeReviewRequest
的名称
如果我将所有者设置为null
,则返回一个空列表。 据我所知,只有在将所有者指定为字符串时,此方法才有效。
我想知道如何获得所有者。
使用workItem.Fields["Associated Context Owner"].Value.ToString()
,我能够获得所有者的GUID。
现在的挑战是如何将GUID转换为预期的所有者,即“NW \ LFreeman”。
当我打印出workItems.Fields["Associated Context Owner"].Value.ToString()
,这就是我所看到的:
c3741a78-1a44-4bf6-95b0-f360cd387f3e
是否可以从此GUID中检索“NW \ LFreeman”? 如果是这样,什么方法调用将使我能够进行这种映射?
编辑:
以下是根据给出的答案和链接为我工作的代码:
Guid ownerId = new Guid(codeReviewRequestWorkItem.Fields["Associated Context Owner"].Value.ToString()); Guid[] teamFoundationIds = new Guid[1]; teamFoundationIds[0] = ownerId; TeamFoundationIdentity[] users = ims.ReadIdentities((Guid[])teamFoundationIds, MembershipQuery.None); Shelveset[] shelves = vcs.QueryShelvesets(codeReviewRequestWorkItem.Fields["Associated Context"].Value.ToString(), users[0].UniqueName.ToString());
IIdentityManagementService.ReadIdentities
是您正在寻找的。