Pergunta

Eu estou tentando mudança no tempo de execução uma chave de arquivo de minhas aplicações configurações, mas ele não funciona.

Eu faço por esse caminho:

ConfigurationSettings.AppSettings["XPTO"] = "HELLO";

Parece que só muda na memória, não no arquivo.

Alguém sabe como fazer isso?

Graças.

Foi útil?

Solução

Dê uma olhada no meu visão geral arquivos .NET configurações ... Em suma, eu acho que você quer uma definição de escopo do usuário. Ele irá se comportar mais como você espera.

Editar: Se você estiver usando o configurações de designer no Visual Studio , então simplesmente mudar o "Scope" para "Usuário". Se não, você deve ser capaz de fazer a programação equivalente.

Outras dicas

O arquivo AppSettings não é projetado para ser escrito. Ele é projetado para configurações de loja que não vai mudar em tempo de execução, mas podem mudar ao longo do tempo isto é:. DB Connection Cordas, web de URL serviço, etc

Assim, embora possa ser possível atualizar o arquivo na realidade você deve re-avaliar se este valor deve ser armazenado lá.

Assumindo que o seu aplicativo tem permissão de escrita no arquivo ...



    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  // the config that applies to all users
    AppSettingsSection appSettings = config.AppSettings;

    if (appSettings.IsReadOnly() == false)
    {
        appSettings("Key").Value = "new value";

        config.Save();
    }

Eu estou ignorando todas as possíveis exceções que podem ser lançadas ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top