gpt4 book ai didi

c# - 如何在工作项更改事件中获取对 TFS 工作项的引用?

转载 作者:行者123 更新时间:2023-11-30 16:09:06 25 4
gpt4 key购买 nike

看起来这会非常简单,但我正在努力寻找我需要的东西。

我正在实现 TFS 2013 事件处理程序,并且只想获取对引发更改事件的工作项的引用。获得标题似乎很容易,但我在事件签名对象中找不到属性或方法,这些属性或方法为我提供了对 WorkItem 对象的引用或我需要去查询它的信息(例如 ID) .

public EventNotificationStatus ProcessEvent(
TeamFoundationRequestContext requestContext,
NotificationType notificationType,
object notificationEventArgs,
out int statusCode,
out string statusMessage,
out ExceptionPropertyCollection properties)
{
var ev = notificationEventArgs as WorkItemChangedEvent;
string WorkItemTitle = ev.WorkItemTitle; /* easy enough */

/*********** need help with this bit *********/
int ChangedWorkItemID = ???
OR
WorkItem ChangedWorkItem= ???
}

注意:此代码已被精简到最基本的部分,以便于阅读和专注于手头的问题。

最佳答案

我找到了一种方法来做到这一点。它不像我想要的那样优雅,但它确实有效。如果有人有更好的答案,我绝对感兴趣。

以下是对有相同问题的其他人有益的方法。

您可以从 notificationEventArgs(WorkItemChangedEvent 类型)的 CoreFields.IntegerFields 集合中获取工作项的 ID,并将其传递到事件处理程序.使用它,您可以从 WorkItemStoreGetWorkItem 方法中获取 WorkItem

注意:您想要的项目的字段名称为“ID”,它似乎始终是集合中的元素 0,但我不相信它总是如此,所以我使用 name 属性搜索LINQ 以防万一。这是整个事件的代码片段。

IntegerField idField =  ev.CoreFields.IntegerFields
.Where<IntegerField>(field => field.Name.Equals("ID"))
.FirstOrDefault<IntegerField>();

int WorkItemID= idField.NewValue;

//Assuming you have an initialized WorkItemStore Object here
workItemStore.GetWorkItem(WorkItemID);

关于c# - 如何在工作项更改事件中获取对 TFS 工作项的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28133095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com