C# RequiredAttribute、StringLengthAttribute等中的强类型资源

C# RequiredAttribute、StringLengthAttribute等中的强类型资源,c#,asp.net-mvc,C#,Asp.net Mvc,在正常使用中,如果我有带有验证属性的ASP.NET MVC模型,但错误消息应该来自人们会使用的资源 [Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "UsernameRequired")] [StringLength(30, ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "UsernameLe

在正常使用中,如果我有带有验证属性的ASP.NET MVC模型,但错误消息应该来自人们会使用的资源

[Required(ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "UsernameRequired")]
[StringLength(30, ErrorMessageResourceType = typeof(Errors), ErrorMessageResourceName = "UsernameLength")]
public string Username { get; set; }
但是有没有一种方法可以将资源名强类型化,例如,我可以在属性中使用Errors.UsernameLength或Errors.UsernameRequired?如果有人更改了资源密钥名称,编译器更容易选择它。

如果Errors.UsernameLength是某个Errors类的内部常量字段,包含实际的资源键字符串,那么它应该可以与ErrorMessageResourceName=Errors一起正常工作。UsernameLength@AndreiErrors.UsernameLength来自我的内部资源,不是常量。