Como utilizar o Gestor de configuração

Quero usar a aplicação.configuração para guardar alguma configuração. Eu tentei usar o próximo código para obter um parâmetro de um arquivo de configuração.

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

Eu também adicionei System.Configuration para ele (eu usei uma classe separada), e em App.ficheiro de configuração que tenho:

<?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>
Mas eu tenho um erro ao tentar usar ConfigurationManager - ConfigurationManager can't exist in such context, mas eu já adicionei System.Configuration. Ou perdi alguma coisa?

editar:

classe com configuração (vista completa)

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

Adicione como parece ...

enter image description here

Isso significa que o problema não é durante o uso ConfigurationManger mas antes - o programa "diz" que ele "não conhece tal elemento", pois eu entendo o erro - o "ConfigurationManager elemento" não existe em tal contexto "

EDIT3

enter image description here

editar 4

enter image description here

Author: Luiso, 2013-10-07

2 answers

Está bem, levei algum tempo a ver isto, mas não há maneira disto compor:
return String.(ConfigurationManager.AppSettings[paramName]);
Nem sequer estás a chamar a um método do tipo String. Faz isto.
return ConfigurationManager.AppSettings[paramName];

O AppSettings KeyValuePair já devolve um texto. Se o nome não existir, ele retornará null.


Com base na sua edição, ainda não adicionou uma referência à montagem System.Configuration para o projecto em que está a trabalhar.

 27
Author: Mike Perrenoud, 2018-08-29 09:06:23
Encontrei algumas respostas, mas não sei se é o caminho certo.Esta é a minha solução por agora. Felizmente não quebrou o meu modo de design.
    `
    /// <summary>
    /// set config, if key is not in file, create
    /// </summary>
    /// <param name="key">Nome do parâmetro</param>
    /// <param name="value">Valor do parâmetro</param>
    public static void SetConfig(string key, string value)
    {
        var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        var settings = configFile.AppSettings.Settings;
        if (settings[key] == null)
        {
            settings.Add(key, value);
        }
        else
        {
            settings[key].Value = value;
        }
        configFile.Save(ConfigurationSaveMode.Modified);
        ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
    }

    /// <summary>
    /// Get key value, if not found, return null
    /// </summary>
    /// <param name="key"></param>
    /// <returns>null if key is not found, else string with value</returns>
    public static string GetConfig(string key)
    {
        return ConfigurationManager.AppSettings[key];
    }`
 -2
Author: user3093469, 2017-08-18 14:35:24