如何本地化ValidationResult中的ErrorMessage?

时间:2017-07-18 18:58:20

标签: c# visual-studio localization entity-framework-6

我有一个名为EFErrors的类,它实际上有一个可能出现在context.SaveChanges()的错误列表......所以它定义如下:

private List<ValidationResult> _errors;

我正在用这样的错误填充它:

public EFErrors ValidateAndSave(){
     var status = new EFErrors();

      try
      {
          this._context.SaveChanges(); 
       }
          catch (DbEntityValidationException ex)
       {
           return status.SetErrors(ex.EntityValidationErrors);

       }
 }

现在ValidationResult实例有一个名为ErrorName的属性...例如,当我收到这样的错误时:

  

“字段用户名必须是带有的字符串或数组类型   最大长度为'30'。“

我想使用错误提供程序(或类似的东西)向用户显示此错误,但他并不是真的必须知道所有细节(这对我作为程序员很有用)。我只想指出重要的事情,例如。最多30个字符,允许的字符等,但不提及像上面引用文本中的真实列名。我想提供一个翻译,这是这里的主要目标。

我想我应该使用资源文件...但是我找不到其他设置来本地化错误。

如果重要的话,这是SetErrors课程EFErrors方法的声明:

public EFErrors SetErrors(IEnumerable<DbEntityValidationResult> errors)
{
      _errors =
          errors.SelectMany(
                x => x.ValidationErrors.Select(y =>
                        new ValidationResult(y.ErrorMessage, new[] { y.PropertyName })))
         .ToList();
     return this;
}
public EFErrors SetErrors(IEnumerable<ValidationResult> errors)
{
  _errors = errors.ToList();
    return this;
}

0 个答案:

没有答案