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 :

Intégration de App.config lors de la compilation d'une bibliothèque de classes


Sujet :

C#

  1. #1
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut Intégration de App.config lors de la compilation d'une bibliothèque de classes
    Bonjour,

    J'ai créé une bibliothèque de classes ayant un fichier de config à la racine du projet (App.Config). J'ai ajouté quelques sections personnalisées utilisées par l'application. Après génération de la dll et son importation dans une application console pour la tester, il faut que j'ajoute à l'application console un fichier de config comportant les mêmes éléments que le fichier de config de la bibliothèque de classes. Est-ce que vous trouvez cela normal ?

    J'ai vu ce thread, mais là, le fichier config est déplacé vers l'application hote de la DLL. Ce n'est pas ce que je veux faire.... je voudrais bien que ce soit "le tout" qui est importé.

    Comment puis-je faire pour intégrer le App.config à la dll sans devoir l'importer dans les projets utilisant celle-ci ?

    Merci.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  2. #2
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 68
    Points
    68
    Par défaut
    Salut ,

    Je ne suis pas expert des appConfig mais j'aurais tendance à dire que ca n'est pas faisaible. Un appconfig est , pour moi, forcément liée à une application et pas à une librairie de classe.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par rabddoul Voir le message
    forcément liée à une application et pas à une librairie de classe.
    Oui et non, c'est un peu plus compliqué que ça.

    En fait la configuration d'un code executable .NET se fait par AppDomain. Donc, oui, l'App.config que VS propose par défaut pour un projet executable ".exe" est bien celui de l'application, pour l'AppDomain par defaut de celle ci.

    Et "non", car on peut, moyennant un peu de code ad hoc, charger un assembly séparé (la DLL en question) utilisé par l'application dans un AppDomain "secondaire" qui aura sa propre configuration ; via :

    http://msdn.microsoft.com/fr-fr/libr...y0(VS.80).aspx

    Mais le problème, c'est que cela devient intrusif sur le code applicatif car executer du code .NET a travers des assemblies differents au sens du meme AppDomain c'est totalement transparent, mais cela n'est plus du tout le cas quand il y a plus d'un AppDomain (celui par defaut de l'application) : il faut alors avoir recours a des techniques de communication inter-AppDomains, puisque precisement ceux ci sont conçus pour isoler / proteger des "domaines de code" d'effets de bord des uns des autres au sein de l'application...

    Bref.

    Il est probablement plus simple (si le besoin d'isolation via AppDomains ne se fait pas sentir) de s'en tenir au seul AppDomain par defaut de l'appli, avec le seul App.config du projet .exe, et de "dispatcher" la semantique de configuration des differents assemblies dans des sections séparées (plutot que tout mettre "en vrac" en <appSettings> p.ex) ; voir :

    http://msdn.microsoft.com/en-us/libr...onsection.aspx

    'HTH

  4. #4
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Salut!
    Citation Envoyé par rabddoul Voir le message
    j'aurais tendance à dire que ca n'est pas faisaible.
    hé si !
    je viens de le faire

    Alors, il faut faire comme ceci pour ouvrir le fichier de config de la librairie de classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private Configuration config = ConfigurationManager.OpenExeConfiguration("MaLibrairieDeClasse.dll");
    Puis, ce code permet de récupérer les valeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach (KeyValueConfigurationElement kvce in config.AppSettings.Settings)
                {
                    if (kvce.Key.StartsWith("nomExemple"))
                    {
                        maVariable = config.AppSettings.Settings[kvce.Key].Value;
                    }
                }
    Après, on peut importer la dll mais il faut copier le fichier config de la dll dans le meme répertoire que la dll...

    Voila
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Points : 253
    Points
    253
    Par défaut
    Ah, bien vu J'avais oublié ce truchement...

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

Discussions similaires

  1. Fichier App.Config d'une bibliothèque de classes
    Par Poussy-Puce dans le forum C#
    Réponses: 2
    Dernier message: 25/04/2008, 20h19
  2. Réponses: 16
    Dernier message: 07/12/2007, 12h11
  3. pb lors de la compilation d'une appli web avec JOnAS
    Par crabinho dans le forum JOnAS
    Réponses: 1
    Dernier message: 20/03/2007, 12h05
  4. creer le *.dcu lors de la compilation d'une DLL ?
    Par Lorenzo77 dans le forum Delphi
    Réponses: 20
    Dernier message: 03/07/2006, 15h59
  5. Réponses: 11
    Dernier message: 15/11/2005, 08h04

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