Question Lecture des paramètres depuis app.config ou web.config dans .net


Je travaille sur une bibliothèque de classe C # qui doit être capable de lire les paramètres de la web.config ou app.config fichier (selon que la DLL est référencée à partir d'une application Web ASP.NET ou d'une application Windows Forms).

J'ai trouvé ça

ConfigurationSettings.AppSettings.Get("MySetting")

fonctionne, mais ce code a été marqué comme obsolète par Microsoft.

J'ai lu que je devrais utiliser:

ConfigurationManager.AppSettings["MySetting"]

Cependant, le System.Configuration.ConfigurationManager La classe ne semble pas disponible à partir d'un projet de bibliothèque de classes C #.

Est-ce que quelqu'un sait quelle est la meilleure façon de le faire?


616
2017-07-27 16:58


origine


Réponses:


Vous aurez besoin de ajouter une référence à System.Configuration dans votre projet dossier de références.

Vous devriez certainement utiliser le ConfigurationManager sur l'obsolète ConfigurationSettings.


652
2017-07-27 17:00



Pour Sample App.config comme ci-dessous:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="countoffiles" value="7" />
    <add key="logfilelocation" value="abc.txt" />
  </appSettings>
</configuration>

Vous avez lu les paramètres de l'application ci-dessus en utilisant le code ci-dessous:

using System.Configuration;

Vous devrez peut-être également ajouter une référence à System.Configuration dans votre projet s'il n'en existe pas déjà. Vous pouvez ensuite accéder aux valeurs comme suit:

string configvalue1 = ConfigurationManager.AppSettings["countoffiles"];
string configvalue2 = ConfigurationManager.AppSettings["logfilelocation"];

J'espère que cela t'aides!


672
2017-10-15 08:47



Mise à jour pour les cadres 4.5 et 4.6; ce qui suit ne fonctionnera plus:

string keyvalue=System.Configuration.ConfigurationManager.AppSettings["keyname"];

Maintenant, accédez à la classe Setting via les propriétés:

string keyvalue= Properties.Settings.Default.keyname;

Voir Gestion des paramètres d'application pour plus d'informations.


53
2017-08-21 18:24



Faites un clic droit sur votre bibliothèque de classe, et choisissez l'option "Ajouter des références" dans le menu; et enfin à partir de l'onglet .NET, sélectionnez System.Configuration. Cela inclurait System.Configuration dll dans votre projet.


35
2017-07-27 17:51



Im utilisant ceci et cela fonctionne bien pour moi

textBox1.Text = ConfigurationManager.AppSettings["Name"];

28
2017-11-30 23:15



Vous devez ajouter au projet une référence à l'assembly System.Configuration.


19
2017-07-27 17:01



Vous pouvez ajouter le fichier App.config à une DLL. App.Config ne fonctionne que pour les projets exécutables, puisque toute la DLL prend la configuration du fichier de configuration pour l'exe en cours d'exécution.

Disons que vous avez deux projets dans votre solution:

  • SomeDll
  • SomeExe

Votre problème peut être lié au fait que vous incluez app.config dans SomeDLL et non dans SomeExe. SomeDll est capable de lire la configuration du projet SomeExe.


13
2018-06-12 18:59



Lire depuis la configuration:

Vous devrez ajouter une référence à Config

  1. Ouvrez "Propriétés" sur votre projet
  2. Aller à l'onglet "Paramètres"
  3. Ajouter "Nom" et "Valeur"
  4. Obtenir de la valeur en utilisant le code suivant:

    chaîne valeur = Properties.Settings.Default.keyname;

Enregistrer dans la configuration:

   Properties.Settings.Default.keyName = value;
   Properties.Settings.Default.Save();

13
2017-08-07 12:29



J'ai eu le même problème, il suffit de les lire de cette façon:

System.Configuration.ConfigurationSettings.AppSettings["MySetting"]

6
2017-10-16 10:53



Essaye ça:

string keyvalue=System.Configuration.ConfigurationManager.AppSettings["keyname"];

Dans web.config devrait être la structure suivante:

<configuration>
<appSettings>
<add key="keyname" value="keyvalue" />
</appSettings>
</configuration>

6
2017-11-16 06:12