如何使用CodeReviewRequest

时间:2017-03-29 02:51:45

标签: c# tfs guid tfs-workitem shelveset

如果我有Shelveset的名称和所有者,我可以使用以下代码成功找到它:

 foreach (Shelveset shelveset in
     versionControlServer.QueryShelvesets(workItem.
         Fields["Associated Context"].Value.ToString(), "NW\\LFreeman")) 

其中workItemCodeReviewRequest workItem的实例。

我可以从CodeReviewRequest

获取workItem.Fields["Associated Context"]的名称

如果我将所有者设置为null,则会返回一个空列表。据我所知,只有在将所有者指定为字符串时,此方法才有效。

我正在试图找出如何获得所有者。

使用workItem.Fields["Associated Context Owner"].Value.ToString(),我可以获得所有者的GUID。

现在的挑战是如何将GUID转换为预期的所有者,即#34; NW \ LFreeman"。

当我打印出workItems.Fields["Associated Context Owner"].Value.ToString()时,我所看到的是:

c3741a78-1a44-4bf6-95b0-f360cd387f3e

是否可以检索" NW \ LFreeman"从这个GUID?如果是这样,什么方法调用将使我能够进行这种映射?

编辑:

以下是根据给出的答案和链接为我工作的代码:

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());

1 个答案:

答案 0 :(得分:1)