2011-05-20 20 views
8

Tengo archivos de recursos específicos de cultura en la carpeta App_GlobalResources. Ahora necesito leer el valor del atributo DisplayName de estos archivos de recursos. Estoy usando:Obtener DisplayName del archivo de recursos

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

pero estoy consiguiendo el error siguiente:

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'.

¿Cómo puedo solucionar este problema?

+0

posible duplicado de [DisplayName atributo de los recursos?] (Http://stackoverflow.com/questions/2431333/displayname-attribute-from-resources) –

Respuesta

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; } 

para una mejor comprensión referirse http://www.dotnetlibrary.com/Articles/GetArticles?articleId=20

+0

Y si ambas condiciones se cumplen, pero todavía no funciona? – Azimuth

10

En mi caso he tenido que cambiar el modificador de acceso de mi recurso desde interna para Pública.

Public_vs_Internal

Por defecto, todos los recursos se crean como interna.

+0

Esto funcionó para mí también. Vi el 'interno' en el código, pero no sabía dónde cambiarlo. Estaba a punto de perder mucho tiempo. Gracias. – elcool

+0

Es trabajos. antes de eso, cambio el modificador de recurso manualmente. –

Cuestiones relacionadas