我已经知道WorkItem.Validate
方法可以使此工作项中的ArrayList
个字段无效(msdn)。
但它们似乎只包含无效字段和名称,但不包含任何错误消息,即它们无效的原因,这对于在不使用内置TFS控件的情况下提交工作项的情况很有用。
如何得到错误提示,如“新错误1:TF200012:字段'标题'不能为空。”?
为了更好地理解,请参阅图片。
我使用VS2010 SP1中文语言,错误描述翻译如上。
答案 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()
为我工作,这将捕获错误消息。