tag route page net asp asp.net vb.net resources globalization

asp.net - route - Cómo acceder a los recursos externos desde el sitio web Aspx



asp route tag helper (2)

Mi solución actual consiste en varias bibliotecas de clase y un sitio web. Estoy en el proceso de globalización de la aplicación y me di cuenta de que mis recursos deben ser accedidos por todos los proyectos, no solo por el sitio web, por lo que no funcionó colocar mis recursos en la carpeta App_GlobalResources.

Agregué mis recursos a una de mis bibliotecas de clase y ahora estoy tratando de averiguar cuál es la mejor forma de acceder a los recursos a partir de mi marcado. Cuando mis recursos estaban en la carpeta App_GlobalResources, pude acceder a ellos usando una expresión como esta:

<$ Resources: MyApp.Name %> for server controls

O

<%=Resources.MyApp.Name %> for plain text

¿Cuál es la mejor forma de acceder a mis recursos desde los archivos aspx de mi sitio web ahora que se encuentran en una DLL de biblioteca de clases?

¡Gracias por tu ayuda!


Encontré un excelente artículo que trata sobre Extendiendo el Modelo de Proveedor de Recursos . Permite el uso de expresiones para acceder a recursos externos:

La sintaxis de una expresión $ Resources para el modelo de proveedor predeterminado (recursos globales explícitos) es la siguiente.

<%$ Resources: [resourceType], [resourceKey] %>

La misma expresión se puede usar para acceder a recursos externos cuando ExternalResourceProviderFactory está configurado, con la siguiente sintaxis.

<%$ Resources: [assemblyName]|[resourceType], [resourceKey] %>

Por ejemplo, para recuperar un recurso del ensamblado CommonResources.dll, del tipo de recurso global "CommonTerms", usaría la siguiente expresión explícita.

<asp:Label ID="labGlobalResource" runat="server" Text="<%$ Resources:CommonResources|CommonTerms, Hello %>" ></asp:Label>


Utilizo una biblioteca de clase Util que, aparte de una serie de otras clases y funciones útiles, contiene una clase i18n con una Función Pública Compartida que devuelve el valor (cadena) de un recurso en un archivo de recursos basado en su nombre y LCID. Agrego una referencia a ese dll en mis proyectos web y donde sea necesario, digamos en un archivo de código subyacente para una etiqueta que escribo:

MyLabel.Text = i18n.GetResourceString("MyStringName",1033)

Puede encontrar una descripción más detallada del método que uso aquí . Confío en que con los detalles proporcionados allí puede adoptar o adaptar mi solución.