Estoy tratando de usar el ResourceManager en una clase C#, pero no sé qué sustituir por el nombre base al crear una nueva instancia de la clase ResourceManager.Usando ResourceManager
Tengo un proyecto independiente que contiene los archivos de recursos que se hace referencia mediante mi proyecto arriba mencionado de la siguiente manera: • Resources.resx • Resources.es-ES.resx
Si tengo un fragmento de código de la siguiente manera, ¿qué debería sustituir el nombre base cuando quiero usar la versión en inglés o español de los recursos?
ResourceManager RM = new ResourceManager(basename,Assembly.GetExecutingAssembly());
He probado el enfoque sugerido por Tom, pero estoy recibiendo el error infame "No se pudo encontrar ningún recurso apropiado para la cultura especificada o la referencia cultural neutra".
Tengo 2 proyectos donde el proyecto YeagerTech es un proyecto y proyecto de aplicación web. YeagerTechResources es un proyecto (en la misma solución) que contiene todos los recursos. El proyecto YeagerTech tiene una referencia en YeagerTechResources.
que tienen la siguiente sintaxis al crear mi Resource Manager:
ResourceManager RM = new ResourceManager("YeagerTechResources.Resources", Assembly.GetExecutingAssembly());
Obviamente, es incorrecta.
Los archivos de recursos en el proyecto YeagerTechResources tienen su BuildAction establecido en Recurso incrustado.
El nombre de mis archivos de recursos es: Resources.resx y Resources.es-ES.resx.
Si alguien simplemente me puede decir el sintaxis exacta a utilizar en función de mis nombres de proyecto y archivo de recursos cuando una instancia del gestor de recursos, que sería de gran aprecio ...
He hecho todo lo que puedo pensar para resolver esto y no se puede ....
este es mi último intento de resolver aquí ...
ResourceManager RM = new ResourceManager("YeagerTechResources.Resources", Assembly.GetExecutingAssembly());
estoy recibiendo el siguiente error después de ejecutar el siguiente código:
sb.Append(RM.GetString("RegisterThanks"));
No se encontraron los recursos adecuados para la cultura especificada o la cultura neutral. Asegúrese de que "YeagerTechResources.Resources.resources" se incrustó correctamente o se vinculó al ensamblado "YeagerTech" en tiempo de compilación, o que todos los ensamblajes satelitales requeridos se puedan cargar y firmar completamente.
Tengo una solución y dos proyectos. Uno es el proyecto web y el otro es el proyecto de recursos. El proyecto de recursos se incluye como referencia en el proyecto web.
Puedo utilizar los recursos en el marcado HTML sin ningún problema, pero al llegar al código C# en el controlador, sigo obteniendo el error anterior.
Cualquier ayuda para la sintaxis exacta que necesito en base a mis proyectos sería muy apreciada.
FYI, en Visual Studio, si agrega un nuevo elemento a su proyecto, seleccione "Archivo de recursos" y asígnele el nombre "Resources.resx", luego Visual Studio generará automáticamente una clase contenedora para la clase ResourceManager en un archivo llamado "Resources.Designer.cs".Puedes mirar ese código para ver cómo funciona. Desafortunadamente, la clase contenedora se genera como interna al proyecto, por lo que no podrá ver esa clase contenedora desde un proyecto diferente, a menos que use el atributo 'InternalsVisibleTo'. –
@ sagesky36 ¿Tiene un archivo resx de idioma neutral (uno sin el código de idioma) y un resx específico del idioma (por ejemplo, Resources.en-US.resx)? Necesita al menos el idioma neutral y especifique en la configuración del proyecto qué idioma es el idioma neutral para su aplicación. –
Relacionados: [Acceder a las cadenas de recursos localizadas sin crear una instancia de 'ResourceManager'?] (Http://stackoverflow.com/q/5246631/1497596) – DavidRR