Acces a un fichier de config depuis une dll

Signaler
Messages postés
6
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
9 mai 2010
-
Messages postés
168
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
28 novembre 2012
-
Bonjour,
J'ai créé une application win form qui utilise une dll pour sa couche d'accès aux données. Je voudrais donc utiliser un fichier de paramétrage pour configurer la chaine de connexion qui serra utilisé par ma dll.
Cette dll servant à plusieur projet je ne peux pas lui passer l'instance du fichier de config créer par la WinForm (en plus c'est pas très beau).
Comment utiliser le fichier de configuration depuis ma dll?
De même plusieurs Dll dans mon projet vont exploiter les informations de ce fichier il me faut donc avoir 1 seul fichier pour l'application et ces dll.
Je suis partie dans l'idée de faire une classe static qui charge le fichier de config comme ca toutes mes dll et mon appli pouront y avoir accès.
La question est comment spécifier à une instance de type ApplicationSettingBase un fichier source?
Si vous avez d'autre suggestions je suis preneur.

6 réponses

Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
18
Bonjour,

Ouh là, tu veux te compliquer la tâche.
L'utilisation de la classe ConfigurationManager suffira à ton besoin.
Et l'appel à cette dernière fera implicitement appel au fichier de configuration de ton application. Donc, toutes tes dlls pointeront sur le même fichier de config.
Exemple:
string value = ConfigurationManager.AppSettings["key"];


Ensuite, si tu veux aller plus loin dans la configuration de chaque dll, tu peux utiliser les sections: recherche google.

Bon développement,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
168
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
28 novembre 2012
5
Vu que c'est avec les chaines de connexion que tu veux travailler, il serait plus judicieux d'utiliser directement la propriété s'y afferant à savoir

string ConnString = ConfigurationManager.ConnectionStrings["NomConnection"].ConnectionString


La il te récupère directement la chine de connection.

Only the strong survive !
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
18
Au temps pour moi, imothepe_33 a raison !
C'est effectivement plus judicieux.

Bon week-end,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
6
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
9 mai 2010

Merci les gras, j'avais trouvé cette solution. Mais en faisant cela ont perd tous l'intérêt du settings.cs générer par Visual Studio. Ce fichier n'est donc utile que pour l'exe ?
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
18
Justement, les settings n'ont pas d'intérêt à être dans ce genre de solution. A moins que tu veuilles que l'utilisateur puisse changer la chaine de connexion.
Les settingstrouvent leur intérêt lorsque tu souhaites mettre en place une configuration utilisateur.
Différement, les fichiers de config définissent la configuration de l'application.

Bonne journée,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
168
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
28 novembre 2012
5
En plus lors du déploiement ton fichier de configuration est aussi intégré au dossier d'installation de l'application et est immédiatement pris en compte lorsque tu le modifie avec la classe "ConfigurationManager". Ce fichier s'écrit sous la forme: NomApplication.Exe.config

Only the strong survive !