2009-09-30 10 views
2

Sur une application asp.net 3.5, j'essaie de localiser explicitement le texte. Exemple ci-dessous de MSDNAsp.Net 3.5 localisation explicite avec application web

<asp:Label ID="Label2" Runat="server" Text="<%$ Resources:LocalizedText, Msg1 %>"> 

Le problème est qu'il ne semble pas pouvoir trouver la classe de ressources. J'utilise une application asp.net, pas un site web. J'ai essayé de spécifier l'espace de noms complet pour la classe de ressources. par exemple:

<asp:Label ID="Label2" Runat="server" Text="<%$ Resources:MyProject.Web.Properties.Resources, Msg1 %>"> 

Mais pas de résultat. Des idées?

oublié de mentionner ... si je l'utilise comme cette expression de liaison de données, cela fonctionne:

<asp:Label ID="Label2" Runat="server" Text="<% MyProject.Web.Properties.Resources.Msg1 %>"> 

Mise à jour:

Après avoir passé un peu de temps avec réflecteur est tombé sur ce dans le ResourceExpressionBuilder:

private static IResourceProvider GetGlobalResourceProvider(string classKey) 
{ 
    string str = "Resources." + classKey; 
    CacheInternal cacheInternal = HttpRuntime.CacheInternal; 
    string key = "A" + str; 
    IResourceProvider provider = cacheInternal[key] as IResourceProvider; 
    if (provider == null) 
    { 
     EnsureResourceProviderFactory(); 
     provider = s_resourceProviderFactory.CreateGlobalResourceProvider(classKey); 
     cacheInternal.UtcInsert(key, provider); 
    } 
    return provider; 
} 

Il semble donc qu'il attend un espace de noms de Resources.xxx. Mon fichier de ressources actuel réside dans WebApp> Propriétés> Ressources avec l'espace de noms de l'application Web. Pensez que c'est le problème.

Répondre

1

J'ai eu à travailler avec ceci:

<asp:Localize runat="server" Text="<%$ Resources:PageResource1.Title %>" /> 

Ma ressource est dans le dossier App_LocalResources dans un fichier avec le nom PageName.aspx.resx. Le nom de votre clé de ressource est PageResource1.Title.

Pour une ressource mondiale (App_GlobalResource\ErrorMessages.resx), cela semble fonctionner:

<%$ Resources:ErrorMessages, ErrorHasOccurred %> 
Questions connexes