如果我有Shelveset的名称和所有者,我可以使用以下代码成功地找到它:
foreach (Shelveset shelveset in
versionControlServer.QueryShelvesets(workItem.
Fields["Associated Context"].Value.ToString(), "NW\\LFreeman")) 其中workItem是CodeReviewRequest workItem的一个实例。
我可以从CodeReviewRequest获得workItem.Fields["Associated Context"]的名称
如果我将所有者设置为null,它将返回一个空列表。据我所知,只有当所有者被指定为字符串时,此方法才能工作。
我想弄清楚怎样才能找到主人。
使用workItem.Fields["Associated Context Owner"].Value.ToString(),我可以获得所有者的GUID。
现在的挑战是如何将GUID转换为预期的所有者,即"NW\LFreeman“。
当我打印出workItems.Fields["Associated Context Owner"].Value.ToString()时,我看到的是:
c3741a78-1a44-4bf6-95b0-f360cd387f3e有可能从这个家伙那里找到"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());发布于 2017-03-29 07:42:13
https://stackoverflow.com/questions/43083438
复制相似问题