我想在我的Silverlight应用程序中使用数据注释来处理验证.内置的验证属性(主要是StringLength和required)非常棒,让生活变得非常简单.然而,他们似乎有一个严重的缺陷.例如,如果我的语言环境设置为fr-CA,则验证例外仍为英语 – “名称字段是必需的”,“字段名称必须是最大长度为20的字符串”等.
这是一个主要问题.这意味着如果我想要内置验证属性的本地化错误消息,我必须手动将ErrorMessage / ErrorMessageResourceType添加到业务层中每个validatable属性的每个验证属性,并为每个错误消息手动添加已翻译的字符串.
所以……我在这里错过了一些东西吗?有没有办法自动将内置验证属性本地化?还是其他一些更简单的方法呢?或者我完全没有运气,并坚持手动路线?
任何意见或想法将不胜感激.
解决方法
好吧,我通过简单地继承内置验证属性来解决这个问题.问题解决了!
internal class LocalizedStringLengthAttribute : StringLengthAttribute { public LocalizedStringLengthAttribute(int maximumLength) : base(maximumLength) { } public override string FormatErrorMessage(string name) { return String.Format(CultureInfo.CurrentUICulture,LanguageResources.Resource.Error_StringLength,name,MaximumLength); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。