所以这些天我正在尝试使用TFS API。到目前为止一切都很好,但突然间......我想使用ID方法搜索特定故事的工作项及其各自的信息,以选择正确的故事。为了不错过我在查询中SELECT *
所做的一些重要信息。我得到了故事,我得到了任务......但是很少有字段似乎存在问题 - 即AreaPath
,IterationPath
和Type
。作为一个原始的检查,我写下了一些控制台打印,以检查什么是好的,什么不是 - 所以,如果我uncomment
执行之前命名的三个中的任何一个,则抛出此异常:A first chance exception of type 'Microsoft.TeamFoundation.WorkItemTracking.Client.FieldDefinitionNotExistException' occurred in Microsoft.TeamFoundation.WorkItemTracking.Client.dll
。
以下是我要打印的内容:
Console.WriteLine(target.Fields["Title"].Value);
Console.WriteLine(target.Fields["Description"].Value);
Console.WriteLine(int.Parse(target.Fields["Id"].Value.ToString()));
Console.WriteLine(target.Fields["AreaPath"].Value); //Problem 1
Console.WriteLine(target.Fields["IterationPath"].Value); //Problem 2
Console.WriteLine(int.Parse(target.Fields["AreaId"].Value.ToString()));
Console.WriteLine(int.Parse(target.Fields["IterationId"].Value.ToString()));
Console.WriteLine(target.Fields["State"].Value);
Console.WriteLine(target.Fields["Type"].Value.ToString()); //Problem 3
无论有没有ToString()
,都没有真正改变。
有什么建议吗?
编辑:它们不是空的,我在调试模式下检查过,它们都已经分配了值。
答案 0 :(得分:2)
使用CoreField
或内置的getter:
Console.WriteLine(target.Fields[CoreField.Title].Value);
Console.WriteLine(target.Fields[CoreField.AreaPath].Value);
Console.WriteLine(target.State);
Console.WriteLine(target.Type.Name);