2011-07-28 5 views
3

J'ai créé un fichier de ressources dans mon projet Web pour localiser l'application. En tant que tel, il contiendra tout le texte traduit pour les étiquettes et les boutons, etc dans l'application Web. Cependant, j'ai aussi du code back-end que j'utilise pour générer et envoyer des emails à mes utilisateurs et je voudrais que ces emails soient également localisés. Le code qui envoie les courriels est dans une assemblée distincte du projet Web, donc je me demande quelle est la meilleure façon de partager ce fichier de ressources avec l'assemblée?Accès aux ressources Fichier provenant d'un assembly séparé

Dans mon code de projet Web Je suis juste le faire:

HttpContext.GetGlobalResourceObject("Localization", "somekey").ToString(); 

donc je pourrais simplement faire ceci dans le code assembleur:

System.Web.HttpContext.GetGlobalResourceObject("Localization", "somekey").ToString(); 

et cela fonctionnera bien aussi longtemps que la L'assembly est appelé à partir de mon application Web ... mais si, pour une raison quelconque, je veux invoquer la méthode de cet assembly à partir d'une autre application qui n'est pas basée sur le Web, il n'y aura pas de HttpContext et il échouera. Y a-t-il une meilleure façon de le faire pour que je puisse partager les ressources entre les deux?

merci beaucoup

Répondre

1

Vous pouvez construire une ExpressionBuilder pour accéder à des chaînes d'un autre assemblage.

L'article .NET String Resources comprend la classe StringExpressionBuilder avec l'expression Cordes:

<asp:Label ID="AppTextLabel" runat="server" 
    Text="<%$ Strings:MyCompany.MyApp.MyStrings, AppText %>" /> 
<asp:Label ID="LibTextLabel" runat="server" 
    Text="<%$ Strings:MyCompany.MyLib.MyStrings, LibText %>" /> 
Questions connexes