如何将自定义资源提供程序与属性一起使用

本文关键字:属性 一起 程序 自定义 资源 | 更新日期: 2023-09-27 17:55:50

如何使用

自定义方法来检索字符串资源并用于属性?例如:

public class Friend
{
    [Required(ErrorMessage = "Invalid Name")]
    [Display(Name = "Friend's name")]
    public string Name { get; set; }
}

默认资源提供程序(如果我设置了ResourceType/ErrorMessageResourceType)将查找具有公共属性的类,但我的资源文件没有生成的类,它们是纯XML。

我有一个方法ResourceHelper.Get(key)它返回我期望的值。如何更改它以使用我检索资源的方式?

如何将自定义资源提供程序与属性一起使用

这里有几种不同的方法可以在您的情况下进行尝试。第四种方法听起来很有希望。

http://carrarini.blogspot.com/2010/08/localize-aspnet-mvc-2-dataannotations.html

Approaches to solve the problem:
  • 编写自定义生成提供程序,它编译来自数据库。
  • 创建一个动态对象,该对象将属性名称转换为键为资源管理器。
  • 扩展数据的属性附注。
  • 使用 T4 模板生成包含资源的类。

[编辑}

  • 对于您关于动态的问题对象

为此,您必须动态创建友元对象。这意味着从 DynamicObject 类继承 Friend 并实现 TryGetMember() 和 TrySetMember()。这些属性在内部处理资源对象"HttpContext.GetLocalResourceObject",并允许您使用本地化属性创建动态 Friend 类。之后,您需要实现自定义模型绑定器以使用环绕它。

这家伙找到了更好的解决方法:- MVC3 ModelBinder for DynamicObject