Desenvolvimento - C#

Windows Forms Application – Alterando Arquivo de Configuração Dinamicamente

Olá pessoal, hoje eu vou falar um pouco sobre Windows Forms Application. Muitas vezes precisamos alterar algumas configurações dinamicamente...

por Mauricio Junior



            Olá pessoal, hoje eu vou falar um pouco sobre Windows Forms Application. Muitas vezes precisamos alterar algumas configurações dinamicamente, ou seja, alterar alguns dados dentro do arquivo App.config em tempo de execução.

           

            O que vou falar e mostrar hoje é: método que pode alterar arquivo de configuração dinamicamente, passando o nome da chave o valor.

Usado:

Visual Studio .NET 2010

Framework: 4.0

Plataforma: Windows Forms Application

Linguagem: C#

            É bem simples o que vou mostrar aqui, porém muito útil no dia a dia. Muitos não sabem fazer, então resolvi fazer e postar aqui no site.

            O primeiro passo foi criar um aplicativo do tipo Windows Forms Application. O segundo passo foi criar uma classe chamada Configuracao.cs, pública e estática; ou seja; aquela que não precisa instanciar. (Imagem 1)

Referência: Imagem 1

           

Dentro da classe, criei um método público e estático chamado UpdateAppSettins.

public static void UpdateAppSettings(string chave, string valor){}

            Note que o método recebe uma string chave e uma string valor. No campo chave, deve ser passado o nome da chave do arquivo de configuração e o valor deve ser passado o valor que será atribuído em tempo de execução. (Código 1)

           

public static void UpdateAppSettings(string chave, string valor)

        {

            // Open App.Config of executable

            System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

           

            // Add an Application Setting.

            config.AppSettings.Settings.Remove(chave);

            config.AppSettings.Settings.Add(chave, valor);

           

            // Save the configuration file.

            config.Save(ConfigurationSaveMode.Modified);

           

            // Force a reload of a changed section.

            ConfigurationManager.RefreshSection("appSettings");

        }

Código 1

            Note que a primeira linha de código, eu abro o arquivo App.config. Adicionei depois o Application Settings, salvo a modificação e faço um refreshSection para atualizar. Sem esse refresh o valor trocado não será utilizado com o .exe que está rodando.

Layout

            Depois de criar a classe e o método, criei o layout para utilização. (Imagem 2)

Referência: Imagem 2

            No clique do botão, chamo o método passando o nome da tag do settings e o valor que desejo atribuir. (Código 2)

        private void cmdConfigurar_Click(object sender, EventArgs e)

        {

            try

            {

                Configuracao.UpdateAppSettings("nome", "mauricio");

                Configuracao.UpdateAppSettings("teclado", "ABNT2");

               

                MessageBox.Show("Alterado com sucesso");

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

Código 2

           

            É bem simples e fácil depois que o método é criado.  Lógico que o arquivo App.config precisa ser adicionado junto ao projeto.

Criação do App.config

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <appSettings>

    <add key="nome" value="valor"/>

    <add key="Teclado" value="ABNT"/>

  </appSettings>

</configuration>

Código 3

            No código 3, mostro a tag adicionado com um valor qualquer e na mudança via código o mesmo fica da seguinte maneira. (Código 4)

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <appSettings>

    <add key="nome" value="mauricio" />

    <add key="teclado" value="ABNT2" />

  </appSettings>

</configuration>

Código 4.

            Fico por aqui e qualquer dúvida pode entrar em contato pelo site, agradeço.

Mauricio Junior

Mauricio Junior - Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; . Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A.
Blog:
blog.mauriciojunior.org
Site pessoal: www.mauriciojunior.org