C# 从验证器检索显示名称

C# 从验证器检索显示名称,c#,.net,validation,localization,attributes,C#,.net,Validation,Localization,Attributes,我有一个使用显示和正则表达式属性的模型类,如下所示: public partial class User { [Display(Name = "LOGIN_FIELD", ResourceType = typeof(Resources.General.User))] [Required(ErrorMessageResourceName = "MISSING_LOGIN", ErrorMessageResourceType = typeof(Resources.General.Us

我有一个使用
显示
正则表达式
属性的模型类,如下所示:

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
),而不是资源文件中的字符串


我需要获得带有每个成员的本地化名称的本地化错误消息列表。最简单的方法是什么?我可以向验证器指定我想要的名称吗?我必须使用反射吗?

我也有同样的问题,你能分享一下你的解决方案吗?对不起,我已经好几年没有接触过C了。我想我成功了,但对结果不满意,否则我会把它贴在这里。