una son publicas programacion privado privadas otra niveles modificadores modificador metodo los encapsulamiento desde definicion cuales concepto como clase acceso acceder c# visual-studio-2008 resx

son - niveles de encapsulamiento en c#



Cambiar el espacio de nombres de los archivos de recursos(resx) y el modificador de acceso (5)

El resx recoge el espacio de nombres según el espacio de nombres especificado en la configuración del proyecto de Visual Studio. Actualice su proyecto para tener el espacio de nombres correcto, y el resx debería heredarlo (los nuevos seguro, no estoy seguro de si los existentes serán corregidos, deberían).

En mi proyecto web estoy usando 4 archivos de recursos en mi carpeta App_GlobalResources . Uno de ellos ( lang.resx ) ha sido creado antes de mi llegada al proyecto. Tiene el espacio de nombre correcto ( WebApplication.App_GlobalResources ) y el modificador de acceso: public .

Por otro lado, los otros tres archivos de Recursos que acabo de crear tienen un espacio de nombres ( Resources ) y internal modificador de acceso internal , y no puedo cambiarlo en el Formulario de Archivo de Recursos de Visual Studio porque está deshabilitado. Si trato de cambiarlo directamente en el archivo designer.cs, las modificaciones se cancelan en el siguiente guardado del archivo.

No es un error crítico, pero puede ser engañoso para los otros desarrolladores en el proyecto encontrar diferentes espacios de nombres y modificadores de acceso para los archivos de recursos que usarán.

Gracias por tu ayuda.


Todavía no estoy del todo seguro de dónde resuelve el problema, pero puedo decirte que puedes resolverlo cambiando la herramienta utilizada para generar el código.

Cuando traté de seguir este artículo , también tropecé con este problema. Después de descargar los archivos fuente como sugirió el autor, noté que el archivo de recursos que ya estaba presente tenía la siguiente clase en la propiedad "Herramienta personalizada": "PublicResXFileCodeGenerator". Además, la propiedad "Crear acción" se configuró en "Recurso incrustado", pero no estoy seguro de si eso es parte del problema.

Cualquier archivo de recursos nuevo que creé utilizaba la herramienta personalizada "GlobalResourceProxyGenerator". Después de sobreescribir esto con el ya mencionado "PublicResXFileCodeGenerator" pareció resolver el problema, cualquiera que sea el verdadero problema.

También noté que el archivo de recursos actual estaba en el formato "2.0", mientras que los archivos nuevos estaban en el formato "1.3". Puede ver esto cuando abre el archivo resx usando un editor XML (o usando "abrir con" desde el propio estudio visual).

Espero que puedas hacer que funcione así, aunque no es ideal. Es probable que sea un problema de instalación con Visual Studio 2008 y SP1, o algo así.

Actualizar:

Esta entrada de blog también puede ayudar.


O puede cambiar el atributo CustomTool (probado en VS2010).

Solo tiene que abrir las propiedades de archivo del archivo de recursos y cambiar la "Herramienta personalizada" de "GlobalResourceProxyGenerator" a "PublicResXFileCodeGenerator", que es la herramienta predeterminada para los archivos de recursos locales. A continuación, debe cambiar la "Acción de compilación" a "Recurso incrustado". También es posible que desee asignar un espacio de nombre de herramienta personalizado adecuado como "Recursos" para acceder al archivo correctamente, pero esto no es necesario ...

Fuente


Los modificadores de acceso a los archivos de recursos están en .csproj ;

Cambiar directamente el archivo .csproj debería solucionar este problema.

Busque el elemento <Generator> y establezca su valor de acuerdo con los ejemplos a continuación:

Un archivo de recursos con internal modificador internal ve así,

<ItemGroup> <EmbeddedResource Update="resources.resx"> <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>resources.Designer.cs</LastGenOutput> </EmbeddedResource> </ItemGroup>

donde un archivo de recursos con public modificador public ve así.

<ItemGroup> <EmbeddedResource Update="resources.resx"> <Generator>PublicResXFileCodeGenerator</Generator> <LastGenOutput>resources.Designer.cs</LastGenOutput> </EmbeddedResource> </ItemGroup>


La respuesta rápida es: simplemente abra las Propiedades del archivo de recursos y cambie el Custom Tool Namespace de Custom Tool Namespace al espacio de nombres que necesite.
Simple como eso.