打印验证结果错误列表 .NET 中剩余的结果

本文关键字:结果 列表 验证 错误 打印 NET | 更新日期: 2023-09-27 18:30:51

我的代码如下:

//Validate that all the attributes are well setted
ValidationContext vc = new ValidationContext(callDAO, null, null);
var resultsValidation = new List<ValidationResult>();
bool validated = Validator.TryValidateObject(callDAO, vc, resultsValidation, true);
if(validated)
{
   //Execute some code
}
else{
     notValidated++;
     var errorValidations = resultsValidation.Select(v => v.ErrorMessage);
     log.Error(string.Format("The attribute VALIDATION FAILED due to: " + errorValidations));
}

我想做的是正确打印日志文件中"错误验证"中包含的错误。但是在日志中写入时,会写入以下内容:

System.Linq.Enumerable+WhereSelectListIterator`2[System.ComponentModel.DataAnnotations.ValidationResult,System.String]

问题:如何正确显示"结果验证"中包含的信息?

注意:"结果验证"中引入的归因长度大于定义的长度时的内容示例:

[0] {The field Id must be a string with a maximum lenght of 15.}

谢谢大家的回答。

打印验证结果错误列表 .NET 中剩余的结果

errorValidations的类型为

IEnumerable<ValidationResult> ,您需要一个 foreach 循环来循环访问集合以打印每个验证结果,

foreach (ValidationResult result in errorValidations)
    log.Error("The attribute VALIDATION FAILED due to: " + result.ToString());