c# asp.net asp.net-mvc visual-studio resource-files

c# - ¿Inaccesible, interno, archivos de recursos?



asp.net asp.net-mvc (2)

Para los chicos de Mac / visual studio 2017, abra el archivo .Designer y haga públicas sus clases:

Carpeta:

Cambio interno a público y guardar:

Actualización: puede volver a la configuración predeterminada interna. Cada vez que realice cambios, deberá hacer este cambio here

  1. Haga clic derecho en el archivo de resource.resx ( resource.resx ) => Propiedades .

  2. Herramienta personalizada => Cambiar a PublicResXFileCodeGenerator

Estoy construyendo un sitio web ASP.NET MVC 4 con C #. Estoy localizando todas mis cadenas estáticas en un archivo de recursos ( .resx ). Utilizo la interfaz de Visual Studio para crear y completar el archivo de recursos. En mi vista index.cshtml , trato de usar una de las cadenas del archivo de recursos, como esto:

@using Namespace.To.RESX.File ... <h1>@EN_US.GLOBAL_NAME</h1> <h2>&ldquo;@EN_US.GLOBAL_SLOGAN&rdquo;</h2> ...

Puedo compilar la aplicación, pero recibo un error de tiempo de ejecución cuando cargo la página, diciendo:

Compiler Error Message: CS0122: ''Namespace.To.RESX.File.EN_US'' is inaccessible due to its protection level

Buscando en el archivo del diseñador resx, puedo ver la clase y todos sus miembros están marcados como internal . Entiendo completamente lo que hacen los modificadores de control de acceso de C #, cómo funcionan, etc ... pero no entiendo por qué Visual Studio restringiría el acceso a los miembros de recursos como este.

¿Por qué Visual Studio haría esto? ¿Hay una manera (fácil) de cambiar estos modificadores de control de acceso, o me estoy perdiendo el punto de los archivos de recursos por completo?


Sí ... no vi esto. Abra el archivo de recursos en modo de diseño y cambie el modificador de acceso (al menos, en VS 2013):