2011-05-10 51 views
1

如何使用自定義方法檢索字符串資源並在屬性上使用?例如:如何使用具有屬性的自定義資源提供程序?

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

默認的資源提供者(如果我設置ResourceType/ErrorMessageResourceType)將尋求與公共屬性的類,但我的資源文件沒有生成的類,它們是純XML。

我有一個方法ResourceHelper.Get(key)它返回我期望的值。我該如何改變它以使用我的檢索資源的方式?

回答

2

這裏有幾種不同的方式來做你的情況嘗試。第四種方法聽起來很有希

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

Approaches to solve the problem: 
  • 編寫自定義生成提供程序, 從 數據庫編譯資源。
  • 創建動態對象,其中 將屬性名稱轉換爲資源管理器的密鑰 。
  • 擴展數據的屬性 註釋。
  • 使用T4模板生成包含資源的 類。

[編輯}

  • 您針對動態 對象

爲了做到這一點的問題,你必須動態地創建朋友的對象。這意味着從DynamicObject類繼承Friend並實現TryGetMember()和TrySetMember()。這些屬性在內部對Resource對象「HttpContext.GetLocalResourceObject」起作用,並允許您使用本地化屬性創建動態Friend類。之後,您需要實現自定義ModelBinder以使用環繞它。

這傢伙找到了更好的工作,各地到: - MVC3 ModelBinder for DynamicObject

+0

我看到和我感興趣的動態對象。它是如何工作的? – BrunoLM 2011-05-10 23:22:31

相關問題