Acceder a archivos de recursos resx desde otro proyecto.

Estoy usando asp.net 3.5, mi solución actualmente tiene 2 proyectos, un proyecto de clase API y un proyecto de sitio web, dentro del proyecto de clase tengo un archivo de recursos llamado checkin.resx. Para poder acceder a los archivos de recursos de mi proyecto de sitio web, tuve que configurar el “Modificador de acceso” en público, esto me permitió usar un nombre muy tipificado para acceder a los recursos, por ejemplo: CkiApi.Checkin.Resources.Checkin.OCKI_HeaderText , donde Checkin es el archivo .resx y OCKI_HeaderText es la clave de recursos.

El problema al que me enfrento es que no puedo acceder a los recursos desde el código aspx de front-end, por ejemplo, al configurar una propiedad de texto de una etiqueta o un mensaje de error de validación. He intentado la siguiente syntax en vano:

 <asp:Label AssociatedControlID="IdentMethods" EnableViewState="false" ID="lblIdentMethod" runat="server" Text=""> 

el error que recibo es

No se encontró el objeto de recurso con la clave ‘OCKI_IdentificationMethod’.

pero a pesar de lo que establezca el nombre de la clase, recibo el mismo error, creo que es porque se trata de buscar en el proyecto del sitio web, ¡pero no puedo averiguar cómo decirle que mire la API! ¿Alguien puede ayudar?

Puedo establecer tags laterales que no sean del servidor usando lo siguiente:

 

Las expresiones de recursos ( <%$ Resources: ClassKey, ResourceKey %> ) usan la clase ResourceExpressionBuilder detrás de la escena. Esta clase puede buscar recursos globales y locales solamente (en las carpetas App_GlobalResources y App_LocalResources del sitio web).

En su lugar, puede usar la clase CodeExpressionBuilder para acceder a recursos de diferentes proyectos. Aquí está cómo usarlo.

Agregue la clase CodeExpressionBuilder a la carpeta App_Code:

 using System.CodeDom; using System.Web.Comstacktion; using System.Web.UI; [ExpressionPrefix("Code")] public class CodeExpressionBuilder : ExpressionBuilder { public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context) { return new CodeSnippetExpression(entry.Expression); } } 

Agregue lo siguiente a la sección system.web / comstacktion en web.config:

  ...     

Finalmente, puede llamar a una clase fuertemente tipada generada para su archivo .resx:

  

¿No está seguro de si esto resolverá su problema pero ha mirado el método HttpContext.GetGlobalResourceObject ?

Lo he usado para acceder a recursos en el proyecto web, desde bibliotecas de clases en un proyecto marco, por lo que quizás tenga suerte en usarlo al revés.