Configuration projet dll, comment y accéder ? [Résolu]

Messages postés
216
Date d'inscription
mardi 5 avril 2005
Dernière intervention
17 septembre 2008
- 26 mars 2007 à 15:41 - Dernière réponse :
Messages postés
216
Date d'inscription
mardi 5 avril 2005
Dernière intervention
17 septembre 2008
- 3 avril 2007 à 18:14
Bonjour à tous,

Voilà, j'ai un petit souci pour accéder à la configuration de ma dll. Voici un résumé de mes projets :

D'abord, j'ai fait un projet destiné à produire une DLL. Le code de cette dll utilise le ConfigurationManager pour accéder à son fichier de configuration app.config (ou est-ce le fichier settings.settings ? ça je ne sais pas). Je précise ça, parce qu'avant d'en faire une DLL, j'en avais fait une application console. Le code qui suivra marchait très bien en console, sauf que Visual ne permet pas de lancer le débug sur une DLL (ce qui semble logique...). J'ai donc créé un projet VB dans lequel j'ajoutais la référence à ma DLL et même à System.Configuration (utile pour le ConfigurationManager), mais impossible d'accéder aux données du fichier. Voici la ligne de code qui pose souci :

         string  m_nomTableRef = ConfigurationManager.AppSettings["tableRef"];

Lorsque je compilais mon projet Console, nickel, pas de souci, il allait lire sans problème le paramètre "tableRef". En dll, intégrée à un autre projet, même en ayant ajouté les références ça ne fonctionne pas : il me retourne null sur cette instruction :( J'ai pourtant essayé de mettre et le fichier app.config, et le fichier settings.settings dans le répertoire de la dll, ou même en éléments existants ajoutés au projet, rien n'y fait :(

Quelqu'un saurait donc me débloquer...? Je cherche à pouvoir faire en sorte que ma dll perso accès à son fichier de configuration au sein d'un autre projet auquel elle est intégrée...

Merci par avance !

"Un seul Être vous manque, et tout est dépeuplé..."
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
- 3 avril 2007 à 16:10
3
Merci
salut,

cela reste le plus simple : http://www.bearcanyon.com/dotnet/#AssemblySettings

ShareVB

Merci ShareVB 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de ShareVB
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
- 30 mars 2007 à 16:58
1
Merci
salut,

bon, alors après test, j'en conclus que la doc de MS n'est pas clair parce que en fait, c'est comme en 1.0/1.1, ca ne marche pas non plus en 2.0...

par contre, ceci doit fonctionner :
http://www.bearcanyon.com/dotnet/#AssemblySettings

ShareVB
Commenter la réponse de ShareVB
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
- 27 mars 2007 à 21:01
0
Merci
salut,

c'est simple : une dll ne peut pas avoir de app.config car app.config se transforme en nom_appli.exe.config lors de la compilation...donc uniquement pour les exe...par contre, si tu renommes le fichier dans le dossier de ton appli en nom_appli.exe.config peut être que la dll pourra y accéder...j'ai jamais essayé...

ShareVB
Commenter la réponse de ShareVB
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
- 27 mars 2007 à 21:10
0
Merci
Si si, un project de type library peut tout à fait avoir son fichier de config (qui est alors de la forme myLib.dll.config).
Pour répondre à la première question, c'est le fichier config qui est ouvert avec l'object ConfigurationManager (le *.config). La section AppSettings permet d'accéder directement à une section par défaut prédéfinie qui permet de stocker les informations d'une application.

Pour l'erreur, c'est dur à dire, il faudra surement un peu plus de précision...

<hr />
-Blog-
Commenter la réponse de cs_Bidou
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
- 27 mars 2007 à 22:37
0
Merci
salut,

oupss, j'avais mal lu...configmanager c'est du 2.0...donc effectivement ca devrait marcher...du moins si nom_appli.dll.config est dans le même dossier que la dll...

ShareVB
Commenter la réponse de ShareVB
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
- 28 mars 2007 à 09:09
0
Merci
En fait non, je ne suis pas tant sûr que ça marche... il me semble que le ConfigurationManager ouvre seulement les .exe si on utilise la property statique AppSettings. Il faudrait plutôt faire un Open, récupérer une instance de Configuration et y aller à la mano (si c'est le cas, c'est assez lourd).
J'ai pas essayé mais ça serait intéressant de tester...

<hr />
-Blog-
Commenter la réponse de cs_Bidou
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
- 31 mars 2007 à 20:45
0
Merci
Salut,

Moui, une dll n'est pas une application, mais ses paramètres peuvent sans problème etre placé dans le fichier de configuration de l'application qui l'utilise.
En plus les bibliothèques de classe sont potentiellement destinées à être placée dans le GAC, et là ça se corserait côté gestion de la config.

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
Messages postés
216
Date d'inscription
mardi 5 avril 2005
Dernière intervention
17 septembre 2008
- 3 avril 2007 à 10:43
0
Merci
Coucou vous tous, merci de vos nombreuses réponses et pardonnez mon absence de cette semaine (indispo oblige....)

Coq n'a pas tort sur le principe, mais je sais que ma dll est potentiellement utilisable dans le même type d'application à chaque fois, et qu'en ces conditions, elle nécessite d'avoir un fichier de conf fourni avec elle. En fait, une sorte de "package" incluant la dll et sa conf quoi, voilà le produit final qu'il me faudrait.... (le fichier de conf peut se trouver dans le même répertoire, ça ne pose pas de problème particulier dans mes contraintes, et heureusement d'ailleurs :D)

En revanche, refaire l'objet Configuration à la main, en plus de ne pas savoir le faire (mais on est là pour apprendre pas vrai ?) je sens que ça fait un peu lourd pour configurer deux noms de table, un nom de DataSource...nan ? :)

Je précise qu'il se peut qu'on ne puisse pas accéder à la configuration et/ou au source de l'appli future utilisatrice de la .dll..... D'où ma contrainte de packager tout ça...

"Un seul Être vous manque, et tout est dépeuplé..."
Commenter la réponse de sphaxslayer
Messages postés
216
Date d'inscription
mardi 5 avril 2005
Dernière intervention
17 septembre 2008
- 3 avril 2007 à 16:18
0
Merci
Salut ShareVB,
oui j'ai déjà regardé ce que tu m'avais passé, cependant comme je l'ai dit, je suis intimement persuadé qu'on peut fournir de la conf à une dll (oui mais comment ? :D) c'est pourquoi j'ai continué à chercher dans cette voie....sans succès hélas....je pense que je vais devoir me rabattre sur la classe de ce brave personnage qui me parait tout à fait honnête....

J'accepte ta réponse (ôô comme je suis clément !!) pour les éventuels futurs quémandeurs... Merci à tous !

"Un seul Être vous manque, et tout est dépeuplé..."
Commenter la réponse de sphaxslayer
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
- 3 avril 2007 à 17:48
0
Merci
salut,

comme a dit Coq, c'est tout a fait logique qu'une dll ne puisse pas avoir de configuration propre par défaut...et d'ailleurs dans les bouqins de MS Press c'est explicitement indiqué que ce n'est valable que pour les exe...

ShareVB
Commenter la réponse de ShareVB
Messages postés
216
Date d'inscription
mardi 5 avril 2005
Dernière intervention
17 septembre 2008
- 3 avril 2007 à 18:14
0
Merci
Oui oui je trouvais ça logique en un sens, mais pratique si ça avait pu être le cas.... Je vais me rabattre sur les AssemblySettings :) ça fera beaucoup de bruit pour presque rien mais au moins ça répond à mon besoin !

"Un seul Être vous manque, et tout est dépeuplé..."
Commenter la réponse de sphaxslayer

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.