微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight 4:内置数据注释验证异常的本地化

我想在我的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 举报,一经查实,本站将立刻删除。

相关推荐