2010-07-08 4 views
3

Je sais que je peux définir le texte d'un libellé en utilisant la syntaxe suivante.ASP.NET: deux façons d'accéder aux ressources globales par programme

lblMessage.Text = (string)GetGlobalResourceObject("resxFile", "message"); 

Quels sont les avantages et les inconvénients liés à l'utilisation de la syntaxe ci-dessous?

lblMessage.Text = Resources.resxFile.message; 

La seconde méthode ne fonctionnera pas pour les fichiers de ressources locaux. Existe-t-il une syntaxe différente pour les fichiers de ressources locaux?

+0

Notez que la deuxième voie d'accéder à un fichier de ressources ne fonctionne que si vous ne prévoyez pas de le localiser et donc le nommer "Resources.TextResources.resx" au lieu de "Resources.TextResources.en.resx" – Christian

Répondre

2

La seconde façon est meilleure car elle est fortement typée. Si vous avez modifié le nom du fichier de ressources ou le nom de la valeur de ressource, vous obtiendrez une erreur de compilation. Si vous deviez obtenir dynamiquement une ressource, alors vous devriez le faire de la première façon, sinon utilisez une instruction switch ou quelque chose de similaire.

Si vous utilisez asp.net 2.0 ou supérieur, il est en fait un 3ème moyen de mettre une étiquette en utilisant uniquement le balisage:

<asp:Label ID="Label1" runat="server" Text="<%$ Resources:resxFile,message %>" /> 

Kinda liés à la localisation: http://quickstarts.asp.net/QuickStartv20/aspnet/doc/localization/localization.aspx

Questions connexes