juin
2013
Bonjour,
Pour ceux qui comme moi voudraient utiliser un fichier de configuration avec une dll pour, par exemple, stocker une chaîne de connexion à une base de données, voici la procédure à suivre.
Premièrement, il faut bien sûr ajouter un fichier de configuration au projet et le nommer « <nom_du_projet>.dll.config ».
Votre fichier devrait ressembler à ceci :
Deuxièmement, il faut modifier les propriétés du fichier pour qu’il se copie dans le répertoire d’output du projet GUI.
N.B. : Il est à noté que C# et VB ne gère pas les solutions multi-projets de la même manière. Il sera donc peut-être nécessaire de le copier manuellement.
Il faut maintenant ajouter la partie permettant de stocker la chaîne de connexion.
Jusque-là, rien de bien sorcier.
And now, the tricky part ! (Et maintenant, la partie la plus délicate !)
Le problème est qu’il n’est pas possible d’accéder aux informations placées dans ce fichier de configuration via My.Settings.
Il faut donc ruser pour ouvrir ce fichier de configuration et accéder à la partie qui nous intéresse (car il pourrait contenir bien d’autres choses que juste la chaîne de connexion).
Voici le code de la fonction que j’utilise dans la classe de base de ma couche DAL.
1 2 3 4 5 6 7 8 9 10 11 12 | Private Shared Function CreateConnection() As SqlConnection Dim cnx As New SqlConnection 'Open the configuration file using the dll location Dim myDllConfig As Configuration = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly.Location) ' Get the appSettings section Dim myDllConfigAppSettings As AppSettingsSection = DirectCast(myDllConfig.GetSection("appSettings"), AppSettingsSection) ' return the desired field cnx.ConnectionString = myDllConfigAppSettings.Settings("MyConnectionString").Value Return cnx End Function |
En quelque mot, voici ce qu’elle fait :
- instanciation de la connexion
- ouverture du fichier de configuration
- récupération de la bonne partie du fichier
- affectation de la chaine de connexion
- renvoi de la connexion
Vous voilà maintenant capable d’utiliser un fichier de configuration avec une dll.
Salut,
Bon petit tuto.
Je me pose juste une question quant à l’avantage de mettre cette configuration dans un fichier de configuration?
Je m’explique, cette dll est recopiée en local dans le projet, donc logiquement le fichier de configuration aussi non? Si c’est bien le cas, si tu dois changer une info tu dois la changer sur tous les projets.
Pour ma part, nous utilisons dans notre administration un fichier de configuration stocké dans un dossier précis du serveur où se trouvent tous les fichiers de configuration. De cette manière en changeant un paramètre toutes les applications sont impactées directement.
Pourrais-tu me dire si j’ai bien comprit et si c’est le cas les avantages / inconvénient des deux méthodes?
Si c’est un paramètre que toutes tes applications nécessitent systématiquement, alors je dirais que la méthode du fichier centralisé sur le serveur est mieux.
Personnellement, je préfère pouvoir gérer l’emplacement de la base de données (car c’était l’objectif du billet mais rien n’empêche de gérer d’autres paramètres de configuration avec cette méthode) pour chaque application. Cela permet, pour le cas où la DB d’une application donnée devait changer de place, de ne changer la chaîne de connexion que pour cette application.
Ok, tu confirmes donc ce que je pensais.
Bon article.