web-dev-qa-db-fra.com

Comment utiliser ConfigurationManager

Je veux utiliser App.config pour stocker certains paramètres. J'ai essayé d'utiliser le code suivant pour obtenir un paramètre à partir d'un fichier de configuration.

private string GetSettingValue(string paramName)
{
    return String.Format(ConfigurationManager.AppSettings[paramName]);
}

J'ai aussi ajouté System.Configuration pour cela (j'ai utilisé une classe séparée), et dans le fichier App.config, j'ai:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <appSettings>
    <add key ="key1" value ="Sample" />
  </appSettings>
</configuration>

Mais j'ai eu une erreur en essayant d'utiliser ConfigurationManager - ConfigurationManager can't exist in such context, mais j'ai déjà ajouté System.Configuration. Ou ai-je raté quelque chose?

ÉDITER :

classe avec config (vue complète)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;

namespace browser
{
    class ConfigFile
    {
        private string GetSettingValue(string paramName)
        {
            return String.Format(ConfigurationManager.AppSettings[paramName]);
        }
    }
}

EDIT2

Ajouter à quoi ça ressemble

enter image description here

Cela signifie que le problème ne réside pas lors de l'utilisation de ConfigurationManger, mais avant - le programme "dit" qu'il "ne connaît pas cet élément" si je comprends bien l'erreur - le "Element ConfigurationManager" n'existe pas dans un tel contexte "

EDIT

enter image description here

EDIT 4

enter image description here

38
gbk

D'accord, il m'a fallu un certain temps pour voir cela, mais il est impossible que cela compile:

return String.(ConfigurationManager.AppSettings[paramName]);

Vous n'appelez même pas une méthode sur le type String. Faites juste ceci:

return ConfigurationManager.AppSettings[paramName];

Le AppSettings KeyValuePair renvoie déjà une chaîne. Si le nom n'existe pas, il retournera null.


Sur la base de votre modification, vous n'avez pas encore (ajouté une référence à la System.Configuration Assemblée pour le projet sur lequel vous travaillez.

30
Mike Perrenoud