IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Obtenir valeur d'une ressource


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut Obtenir valeur d'une ressource
    Bonjour

    Tout nouveau au C#, j'ai créer un simple projet pour tester les resources.
    J'ai un form Windows avec quelques labels qui changent selon la langue que j'ai dans le fichier app.config.
    Maintenant, je voudrait, dans le code, accéder à certaines valeurs qui se trouvent dans mes fichiers resources.
    J'ai 2 fichier resources:
    - Form1.resx
    - Form1.fr-FR.resx

    J'ai essayé en faisant comme ça mais ça ne marche pas. Une erreur d'exécution indiquant que le fichier Resources.Form1.ressources n'existe pas est générée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ResourceManager m_ResourceManager =
                new ResourceManager("Resources.Form1", this.GetType().Assembly);
    Console.WriteLine(m_ResourceManager.GetString("Edit"));
    Comment faire?

    merci

  2. #2
    Membre confirmé Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Points : 513
    Points
    513
    Par défaut
    Salut,
    en principe tu te sers des fichiers *.resx qui sont situés dans un dossier de solution nommé "Properties" visible dans l'explorateur de solutions.
    En principe toujours, tu as par défaut un fichier "resources.resx" créé dans ce dossier, quand Visual Studio te créé ta solution.
    Si ce n'est pas le cas, fais clic droit sur ton projet dans l'explorateur de solutions => Properiétés => tu as un onglet avec les propriétés du projet, à gauche tu cliques sur "Resources" => au milieu de l'onglet, tu devrais avoir un hyperlink "cliquez pour créer le fichier de ressources par défaut". Tu cliques là-dessus.
    Quand tu as bien ton fichier Resources.resx dans le dossier "Properties", Visual Studio te créé automatiquement une classe wrapper pour y accéder, ça se passe dans le namespace *MonProjet*.Properties. Pour accéder à tes ressources, tu fais par ex.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string toto = MonProjet.Properties.Resources.Toto;
    Et ça te retourne la ressource associée, en prenant en compte la culture appropriée, donc ça ira piocher dans ton Resources.fr-FR.resx si le thead de l'interface correspond.

    Pour ce qui est de la technique que tu utilises dans ton exemple, ça marche aussi, mais il me semble que par défaut ça devrait être "Form1.Resources.resx" et pas "Resources.Forms1.resx".

    Voilà !

    Sinon pour de plus amples infos, toujours pareil, le mieux c'est la MSDN :http://msdn.microsoft.com/fr-fr/library/f45fce5x.aspx

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut
    Merci pour la réponse.

    Mes 2 fichiers de resources se trouvent sous le répertoire: Forms/Form1.cs

    La façon que j'ai fait pour initialiser mon resource manager est la suivante (mais ça ne marche toujours pas):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ResourceManager m_ResourceManager = new ResourceManager("Resources.Form1.resx", System.Reflection.Assembly.GetExecutingAssembly());
    Console.WriteLine(m_ResourceManager.GetString("Edit"));
    En exécutant, l'erreur suivante se produit:
    Impossible de trouver des ressources appropriées pour la culture spécifiée ou la culture neutre. Assurez-vous que \"Resources.Form1.resx.resources\" a été correctement incorporé ou lié dans l'assembly \"BD_SOL_Admin\" au moment de la compilation ou que tous les assemblys satellites requis sont chargeables et complètement signés.
    Une idée de ce que je fais de mal?

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/10/2009, 20h08
  2. Modifier la valeur d'une ressource
    Par Gregory.M dans le forum Windows Forms
    Réponses: 10
    Dernier message: 07/04/2009, 13h41
  3. [FAQ C#] Localiser les valeurs d'une ressource (.resx)
    Par rad_hass dans le forum Contribuez
    Réponses: 1
    Dernier message: 09/04/2008, 01h34
  4. Réponses: 4
    Dernier message: 16/10/2006, 09h54
  5. Comment obtenir une ressource sous weblogic ??
    Par Invité dans le forum Weblogic
    Réponses: 2
    Dernier message: 19/05/2006, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo