2011-05-20 39 views
8

我在App_GlobalResources文件夹中有文化特定的资源文件。现在我需要从这个资源文件中读取DisplayName属性的值。我使用:从资源文件获取显示名称

[Display(Name = "MerchantName", ResourceType = typeof(Resource))] 
public string Merchant { get; set; } 

,但我收到以下错误:

Cannot retrieve property 'Name' because localization failed. Type 'Resources.Resource' is not public or does not contain a public static string property with the name 'MerchantName'.

我该如何解决这个问题?

+0

可能重复[DisplayName属性来自资源?](http://stackoverflow.com/questions/2431333/displayname-attribute-from-resources) – 2011-05-20 08:42:12

回答

0
Check following: 

1. Your resource file access modifier should be declared as PUBLIC 
2. It contain a key - MerchantName 

    [Display(ResourceType = typeof(Resource), Name = "MerchantName")] 
    public string MerchantName{ get; set; } 

更好地理解是指http://www.dotnetlibrary.com/Articles/GetArticles?articleId=20

+0

如果两个条件都满足,但它仍然不起作用? – Azimuth 2017-11-17 13:32:22

10

在我来说,我不得不改变从内部资源我的公共访问修饰符。

Public_vs_Internal

默认情况下,所有的资源都为内部创造。

+0

这也适用于我。我在代码中看到了“内部”,但不知道在哪里改变它。我正要浪费很多时间。谢谢。 – elcool 2015-07-22 15:56:16

+0

它的工作。在它之前,我手动更改资源的修饰符。 – 2017-01-25 12:41:48