Pregunta

Tengo la siguiente configuración no estándar (VS2008, .NET 3.5 SP1):

Hay un proyecto web principal llamado MainSite y hay varios plugins " proyectos web con diferentes nombres.

Al compilar estos complementos, tengo un paso de compilación personalizado que llama a aspnet_compiler.exe y aspnet_merge.exe . Esto da como resultado dos archivos .DLL: plugin_name .dll y plugin_name _deploy.dll. El primero contiene el código detrás de las clases, el segundo contiene el código generado a partir de archivos .ascx.

Estos complementos .DLL se copian en la carpeta / MainSite / bin / Plugins / . En tiempo de ejecución (inicio de la aplicación), la aplicación MainSite busca en esta carpeta y carga dinámicamente todos los archivos .DLL allí.

Todos mis formularios están en los complementos, en archivos .ascx. La aplicación principal es solo un esqueleto que carga estos controles de usuario .ascx según sea necesario.

Y ahora viene la necesidad de localización. Idealmente, me gustaría tener lo siguiente:

  • Al hacer los recursos en Visual Studio, debe haber un archivo de recursos separado para cada formulario (archivo .ascx) para que sea más fácil para las personas localizar los formularios en paralelo.
  • El agradable método meta: resourcekey en archivos .ascx es muy cómodo para localizar controles;
  • El mecanismo automático de recurso de lenguaje / cultura de recursos en .NET debería ser utilizable;
  • El resultado de la compilación debe ser tal que los archivos de todos los complementos se puedan copiar en la carpeta / MainSite / bin / Plugins / . Si hay un archivo .DLL para cada idioma / cultura y deben colocarse en algunas subcarpetas específicas, está bien siempre que los .DLL de diferentes complementos no tengan nombres en conflicto.

¿Alguna idea sobre cómo lograr esto?

¿Fue útil?

Solución

Aparentemente es posible implementar proveedores de recursos personalizados en .NET. Aquí es un artículo que contiene enlaces a otros artículos que explican todo el proceso. En efecto, tomas el valor de meta: resourcekey y obtienes el valor de donde quieras. El artículo anterior, por ejemplo, almacena toda la información de localización en una base de datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top