2012-08-22 8 views
5

La página Names of Resources en MSDN dice lo siguiente.¿Cómo anido los identificadores de recursos?

Utilice el separador de puntos (".") Para anidar identificadores con una jerarquía clara.

Por ejemplo, nombres como Menus.FileMenu.Close.Text y Menus.FileMenu.Close.Color cumplen con esta guía.

¿Cómo puedo hacer esto? Cuando intento hacerlo, me dicen que un punto no es válido en un identificador de recursos, como este.

Disappointing.

puedo entender por qué no es válida [1], por lo que siempre supuse que no era posible identificadores de recursos nido, y nunca había probado hasta ahora ... pero dice que MSDN poder. ¿Qué me estoy perdiendo?

[1] Al mirar el archivo Resource.Designer.cs autogenerado.

Respuesta

2

He visto esto también y parece que ha existido desde hace unos años.

El generador de tipos fuertes genera una clase fuerte de tipo y asigna cada recurso a una propiedad de esa clase. El nombre del recurso (identificador) se usará como el nombre de la propiedad. Un identificador con un carácter de punto no es válido en C# (como lo declaró en la pregunta). Sin embargo, el generador reemplazará el punto con guión bajo por lo que aún obtendrá una clase tipada fuerte válida.

Normalmente solo reemplazo el punto con un guión bajo. Es extraño, sin embargo, que todavía no hayan cambiado eso en las directrices. (¿O tal vez me he perdido algo?)

+1

También hice lo mismo con el carácter de subrayado. – umlcat

+0

Me he dado cuenta por reflejo de que internamente Microsoft parece utilizar caracteres de subrayado para separar los recursos, por lo que tal vez * es * solo una documentación desactualizada. – crdx

+0

"Sin embargo, el generador reemplazará el punto con un guión bajo" No he podido lograr que eso suceda. Simplemente se queja como en mi captura de pantalla. – crdx

Cuestiones relacionadas