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
Haga clic derecho en el archivo de
resource.resx
(resource.resx
) => Propiedades .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>“@EN_US.GLOBAL_SLOGAN”</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):