Imagine que está trabajando en un proyecto .Net 4.0 que se compone de cientos de ensamblajes, cada uno con su propio archivo de recursos (.resx) para la localización. Las cadenas localizadas se accede desde C# a través de clases auto-generado con ResXFileCodeGenerator (que crea un archivo "ResourceFile.Designer.cs"): string test = ResourceFile.TestString;
Cómo hacer herencia de los archivos de recursos (resx)
Cada conjunto ha localizado cadenas que son particulares a ella, pero no son cadenas que son común a todas las asambleas. Te dices a ti mismo que sería bueno tener esas "cadenas comunes" en un archivo de recursos "padre", en el cual el código retrocedería si la clave de recursos no está disponible en el archivo de recursos "local". Entonces dices "hey, la herencia podría funcionar aquí". Y de hecho, hacer algo como esto en el archivo de diseñador generado automáticamente funciona: internal class ResourceFile : ParentResourceFile
Es decir, las cadenas no definidas en ResourceFile
, pero definidas en ParentResourceFile
, todavía se puede acceder con ResourceFile.StringInParentFile
.
Pero algo en problemas de cabecera del archivo del diseñador que: "cambios en este archivo pueden provocar un funcionamiento incorrecto y se perderán si el código se regenera." Además, usted sabe jugar en los archivos de diseño generados automáticamente es mal visto. Así se llega aquí, y le preguntas:
- ¿Cuándo generan ResXFileCodeGenerator/regenerar la clase diseñador ?
- ¿Hay alguna manera de desactivar esa autogeneración?
- ¿Tendremos para renunciar a las ventajas de ResXFileCodeGenerator e implementar nuestro propio manejo de ResourceManager ?
Y dices "gracias".
esto no funcionó para mí ... ¿Cómo lo hizo para que pudiera llamar a "BaseClass.BaseResourceFile.TestString"? – Denis