2009-07-10 7 views

Répondre

20

Réponse: Oui, comme pseudo suivante:

Resources.<The name of the resources file name>.<your resource key>; 

Exemple:

lblTitle.Text = Resources.MySettings.WebsiteTitle; 

Resources est une auto de Visual-Studio a généré espace de noms qui expose toutes les classes mondiales des ressources et des accessoires dans le projet .

+0

Salut, Puis-je utiliser (string) this.GetGlobalResourceObject ("Ressources", "col_description") comme comme ci-dessous dans le texte de l'étiquette ou sur le bouton Singh

1

Si vous êtes dans le site que vous avez accès à HttpContext et peut utiliser:

HttpContext.GetGlobalResourceObject("myResourceKey") 
+0

Je pense que les ressources sont meilleures car elles sont fortement typées, plutôt que d'être des objets. merci quand même – Shimmy

+0

Pas besoin non plus d'utiliser des chaînes codées en dur. – Shimmy

+0

Comment peut-on éviter les chaînes codées en dur? – MrFox

14

Vous devez utiliser

HttpContext.GetGlobalResourceObject("myResourceKey") 

... car de cette manière il fonctionne toujours lorsque vous utilisez une coutume ResourceProvider. Le générateur de type par défaut pour les fichiers de ressources utilise explicitement le fournisseur Resx et ne fonctionnera pas si vous implémentez quelque chose comme database provider.

+0

Je pensais que HttpContext.Current fonctionnera, mais pas –

+0

Je préfère "httpcontext" au lieu de l'espace de noms généré par studio visuel, parce que je peux passer un paramètre de culture et choisir quelle langue retourner. En utilisant la fonction d'espace de noms "direct", je reçois toujours l'anglais, j'ai besoin de changer la culture actuelle de fil avant de l'appeler si je veux la bonne culture. – foxontherock

+0

Salut, Puis-je utiliser (string) this.GetGlobalResourceObject ("Ressources", "COL_Description") comme ci-dessous dans l'étiquette ou le texte du bouton Singh

-3

J'ai un peu pris ce du concepteur de ressources,

ResourceManager temp = 
    new ResourceManager("Resources.<<resource name>>", 
    System.Reflection.Assembly.Load("App_GlobalResources")); 
+2

Le code dans le concepteur est utilisé pour initier le membre statique, de sorte que l'assembly de ressources est chargé une fois par instance, puis l'utilisateur accède aux outils fournis par MSFT pour accéder le membre initié. L'utilisation de votre ligne va récupérer la ressource encore et encore de l'assemblage, ce qui devrait être évité. Quoi qu'il en soit, la ligne que vous avez affichée charge le ResourceManager et n'obtient pas la propriété désirée, ce que veut l'OP. – Shimmy

1

Dans certaines fermes, vous aurez besoin d'envelopper l'appel à

HttpContext.GetGlobalResourceObject("myResourceKey") 

l'intérieur d'un bloc try/catch pour l'obtenir sur la "Impossible de trouver des ressources appropriées pour l'erreur de culture spécifiée ou la culture neutre".

+0

Hey, cela fonctionne, j'utilise le code suivant: 'var resource = HttpContext.GetGlobalResourceObject (" ResourceBaseName "," ResourceKey "); chaîne message = ressource! = Null? resource.ToString(): string.Empty; ' – DanielV

Questions connexes