我有一个使用Display
和RegularExpression
属性的模型类,如下所示:
public partial class User
{
[Display(Name = "LOGIN_FIELD", ResourceType = typeof(Resources.General.User))]
[Required(ErrorMessageResourceName = "MISSING_LOGIN", ErrorMessageResourceType = typeof(Resources.General.User))]
[StringLength(20, MinimumLength = 3,
ErrorMessageResourceName = "LOGIN_LENGTH_ERROR", ErrorMessageResourceType = typeof(Resources.General.User))]
[RegularExpression(@"^[a-zA-Z0-9]{1,40}$",
ErrorMessageResourceType = typeof(Resources.General.User), ErrorMessageResourceName = "LOGIN_FORMAT_ERROR")]
public string LOGIN { get; set; }
}
我稍后使用Validator.TryValidateObject
查找此类实例中的任何错误:
var isValid = Validator.TryValidateObject(
instance: usuario,
validationContext: new ValidationContext(usuario,
serviceProvider: null,
items: null),
validationResults: validationResults,
validateAllProperties: true);
通过这种方式,我得到了正确本地化的错误消息(ValidationResult.ErrorMessage
),但是有问题的字段(ValidationResult.MemberNames
)的名称只是字段名称(在这种情况下,LOGIN
),而不是资源文件中的字符串。
我需要获取具有每个成员的本地化名称的本地化错误消息的列表。最简单的方法是什么?我可以向Validator指定我想要的名称吗?我必须使用反射吗?