如何通过代码获取TFS工作项验证错误消息?

时间:2014-03-23 12:56:16

标签: c# validation tfs tfs-workitem

我已经知道WorkItem.Validate方法可以使此工作项中的ArrayList个字段无效(msdn)。

但它们似乎只包含无效字段和名称,但不包含任何错误消息,即它们无效的原因,这对于在不使用内置TFS控件的情况下提交工作项的情况很有用。
如何得到错误提示,如“新错误1:TF200012:字段'标题'不能为空。”?

为了更好地理解,请参阅图片。msdn
 我使用VS2010 SP1中文语言,错误描述翻译如上。

2 个答案:

答案 0 :(得分:15)

Visual Studio只是另一个包装TFS错误消息的客户端。您无法捕获TF *错误,但您可以获取FieldStatus并打印自己的消息。

var invalidFields = workItem.Validate();
if (invalidFields.Count > 0)
{
    foreach (Field field in invalidFields)
    {
        string errorMessage = string.Empty;
        if (field.Status == FieldStatus.InvalidEmpty)
        {
            errorMessage = string.Format("{0} {1} {2}: TF20012: field \"{3}\" cannot be empty."
                , field.WorkItem.State
                , field.WorkItem.Type.Name
                , field.WorkItem.TemporaryId
                , field.Name);
        }
        //... more handling here

        Console.WriteLine(errorMessage);
    }
}
else // Validation passed
{
    workItem.Save();
}

答案 1 :(得分:0)

field.Status.ToString()

为我工作,这将捕获错误消息。