【发布时间】:2018-06-03 08:45:01
【问题描述】:
因此,我将从 Visual Studio Team Services 获取 cmets,通过从 VSO 传递工作项的 id,我应该能够从任何给定的工作项中提取 cmets 历史记录,因为我将“id”传递给GetCommentsAsync 即使我为 api 提供的 workItem id 确实有 cmets,我也得到了 cmets 的空结果。
public WorkItemComments GetPageOfWorkItemComments(string VSTSID)
{
int id = Int32.Parse(VSTSID);
VssBasicCredential credentials = new VssBasicCredential("", _personalAccessToken);
VssConnection connection = new VssConnection(new Uri(_uri), credentials);
WorkItemTrackingHttpClient workItemTrackingClient = connection.GetClient<WorkItemTrackingHttpClient>();
WorkItemComments result = workItemTrackingClient.GetCommentsAsync(id).Result;
Console.WriteLine("Total Revision Count: {0}", result.TotalCount);
Console.WriteLine("From Revision Count: {0}", result.FromRevisionCount);
Console.WriteLine("Comments...");
foreach (var comments in result.Comments)
{
Console.WriteLine("{0}", comments.Text);
Console.WriteLine();
}
return result;
}
当我的代码开始查看 cmets 的结果并抛出错误时,它在 foreach 上中断:Object reference not set to an instance of an object.
从这里开始我的通话:
public string CreateWorkItem(string title, string description, string
PTID, string assigned, string VSTSID)
{
Response response;
VssObject work = new VssObject();
try
{
//work.CreateWIUsingClientLib(title, description, PTID,
assigned, VSTSID);
//work.GetWorkItemById(PTID);
work.GetPageOfWorkItemComments(VSTSID);
response = new Response(work);
return response.BuildJsonResponse();
}
catch (Exception ex)
{
_logger.Error(ex, "{Application:l} - {SourceContext:l}: Error
calling 'VssAPI'.", applicationName);
return ex.Message;
}
}
使用 GET 通过邮递员进行测试:
http://localhost:57765/API.svc/CreateWorkItem?title=blash&description=bkkdkd&ptid=BDC19072-9016-4CB8-8741-CDFAF52D0E40&assigned=assigned&vstsid=543
【问题讨论】:
标签: c# asp.net tfs azure-devops workitem