2009-10-29 13 views
6

Tengo un montón de archivos locales resourse¿Puedo combinar recursos locales en ensambles satelitales?

  • /Controls/App_LocalResources/SomeControl.ascx.resx,
  • /Pages/App_LocalResources/SomePage.aspx.resx, etc.

I quiero agregar otro idioma y no quiero ir a todas las carpetas y agregar archivos SomeControl.ascx.de.resx por ejemplo y luego tengo que recompilar todo el pensamiento.

me gustaría utilizar ensamblados satélite e integrar todos los archivos en algo así como MyWebPage.de.dll

Esto fue posible en la versión VS2003 por los recursos globales, pero no estoy seguro de que puedo hacer en VS2008 versión para recursos locales?

estoy con el acceso a los recursos con la sintaxis:

<asp:label id="lblSomething" runat="server" meta:resourcekey="labelFirstName"/> 

Respuesta

5

Su pregunta no es realmente demasiado clara de si está buscando una característica de VS2008 o una característica del marco ASP.NET. Así que iré con la solución de código.

La sintaxis de enlace implícito que está utilizando utiliza el proveedor de fuentes local predeterminado de ASP.NET que toma la ruta de la página en la que viven los recursos para determinar qué recursos cargar. Si sus recursos están almacenados en otro lugar y aún desea usar el systax de enlace implícito en su código, deberá usar su propio proveedor. Suena complicado, pero es bastante sencillo.

Para hacer esto usted tendrá que primero ResourceProviderFactory subclase

y anulan tanto

IResourceProvider CreateGlobalResourceProvider(string classKey) 
IResourceProvider CreateLocalResourceProvider(string virtualPath) 

... luego implementar su propio IResourceProvider que obtiene sus recursos de sus ensamblados satélite utilizando un ResourceManager

public interface IResourceProvider 
{ 
    object GetObject(string resourceKey, CultureInfo culture); 
    IResourceReader ResourceReader { get; } 
} 

Luego necesita agregar la configuración a su archivo web.config para que ASP.NET sepa que debe usar su SatelliteResourceProviderFactor y mueve tus recursos a tu ensamblado externo, pero deberías ser bueno para ti.

Un montón de documentación se puede encontrar aquí ... en la sección "La construcción de un proveedor de recursos de base de datos" ...

http://msdn.microsoft.com/en-us/library/aa905797.aspx#exaspnet20rpm_topic4

Cuestiones relacionadas