Usar o Visual C# para armazenar e recuperar informações personalizadas de um arquivo de configuração de aplicativo

Este artigo apresenta como armazenar informações personalizadas de um arquivo de configuração que você pode recuperar posteriormente durante o tempo de execução por seu aplicativo associado. É útil quando você deve definir dados associados a um aplicativo.

Versão original do produto: Visual C#
Número de KB original: 815786

Requisitos

A lista a seguir descreve o hardware e o software recomendados que você precisa:

  • Microsoft Windows
  • Visual C#

Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:

  • Linguagem XML
  • Arquivos de configuração do .NET

Criar um aplicativo de console que lê um arquivo de configuração

Você pode armazenar configurações de aplicativo no arquivo de configuração associado ao aplicativo. Os arquivos de configuração são salvos no formato XML.

Os System.Configuration namespaces e System.Collections.Specialized no .NET Framework incluem as classes necessárias para recuperar informações de um arquivo de configuração de aplicativo .NET durante o tempo de execução.

Para criar um aplicativo de console que lê o conteúdo de um arquivo de configuração associado durante o tempo de execução, siga estas etapas:

  1. Inicie o Visual Studio .NET ou o Visual Studio.

  2. No menu Arquivo, aponte para Novo e, em seguida, selecione Projeto.

  3. selecione Visual C# em Tipos de Projeto e selecione Aplicativo de Console em Modelos. Nomeie o projeto ConConfig. Por padrão, o Visual C# cria uma classe chamada Programa.

    Observação

    No Visual Studio .NET, selecione Projetos do Visual C# em Tipos de Projeto e selecione Aplicativo de Console em Modelos. Nomeie o projeto ConConfig. Por padrão, o Visual C# cria uma classe chamada Class1.

  4. Verifique se a janela Gerenciador de Soluções está visível. Se não estiver visível, pressione a combinação de teclas CTRL+ALT+L.

  5. Em Gerenciador de Soluções, clique com o botão direito do mouse no nome do projeto, selecione Adicionar e selecione Novo Item.

  6. Na lista Adicionar Novo Item , selecione Arquivo XML.

  7. Na caixa de texto Nome , digite App.confige selecione Adicionar.

  8. Você pode usar um arquivo de configuração de aplicativo para coletar configurações de aplicativo personalizadas que você salva no formato chave/valor. Você pode incluir <add> elementos na <appSettings> seção de um arquivo de configuração associado. Cada par de chave/valor tem um <add> elemento. Um <add> elemento tem o seguinte formato:

    <add key="Key0" value="0" />
    

    Adicione uma <appSettings> seção com <add> elementos ao arquivo de configuração entre as <configuration> marcas e </configuration> .

    Por exemplo, o arquivo de configuração a seguir inclui uma <appSettings> seção que especifica três pares de chave/valor:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>
            <add key="Key0" value="0" />
            <add key="Key1" value="1" />
            <add key="Key2" value="2" />
        </appSettings>
    </configuration>
    
  9. Em Gerenciador de Soluções, clique duas vezes em Program.cs para exibir a janela de código. Adicione as instruções a seguir ao módulo de código.

    Observação

    Essas instruções devem ser exibidas antes de qualquer outra instrução no arquivo.

    using System.Configuration;
    using System.Collections.Specialized;
    
  10. Adicione uma referência a System.Configuration.dll seguindo estas etapas:

    1. No menu Projeto , selecione Adicionar Referência.
    2. Na caixa de diálogo Adicionar Referência , selecione a guia .NET .
    3. Localize e selecione o nome do componente de System.Configuration.
    4. selecione OK.
  11. Para manter o valor de uma chave de arquivo de configuração na <appSettings> seção do arquivo de configuração, declare uma variável de cadeia de caracteres na seção da Main seguinte maneira:

    string sAttr;
    
  12. Para recuperar um valor para uma chave especificada da <appSettings> seção do arquivo de configuração, use o Get método da AppSettings propriedade da ConfigurationManager classe. A ConfigurationManager classe está no System.Configuration namespace. Quando o AppSettings.Get método recebe um parâmetro de entrada de cadeia de caracteres que contém uma chave, o aplicativo recupera o valor associado à chave.

    O código a seguir recupera o valor do Key0 atributo do arquivo de configuração associado. Em seguida, o código coloca esse valor na variável de sAttr cadeia de caracteres. Se uma chave não existir para esse valor, nada será armazenado em sAttr.

    sAttr = ConfigurationManager.AppSettings.Get("Key0");
    
  13. Para exibir o valor que o aplicativo recupera na janela Console, use Console.WriteLine da seguinte maneira:

    Console.WriteLine("The value of Key0 is "+sAttr);
    
  14. Você pode usar uma referência à AppSettings propriedade para recuperar todos os pares de chave/valor na <appSettings> seção. Quando você usa a AppSettings propriedade, o aplicativo retorna todos os pares de chave/valor associados. Esses pares são armazenados em um NameValueCollection tipo. O NameValueCollection contém entradas de chave/valor para cada chave que o aplicativo recupera. A NameValueCollection classe está no System.Collections.Specialized namespace.

    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
    
  15. A AllKeys propriedade de referências de NameValueCollection uma matriz de cadeia de caracteres que tem uma entrada para cada chave que o aplicativo recupera. Use uma construção foreach para iterar por meio da AllKeys matriz para acessar cada chave que o aplicativo recupera. Cada entrada de chave em AllKeys é um tipo de dados de cadeia de caracteres.

    Dentro da foreach construção, use Console.WriteLine para exibir a chave e seu valor associado na janela Console. A chave atual que o aplicativo processa está em s. Use-o como um índice no para obter seu sAllNameValueCollection valor associado.

     foreach (string s in sAll.AllKeys)
         Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s));
    
     Console.ReadLine();
    

Lista de código completa

using System;
using System.Configuration;
using System.Collections.Specialized;

namespace ConConfig
{
    class Program
    {
        static void Main(string[] args)
        {
            string sAttr;

            // Read a particular key from the config file 
            sAttr = ConfigurationManager.AppSettings.Get("Key0");
            Console.WriteLine("The value of Key0: " + sAttr);

            // Read all the keys from the config file
            NameValueCollection sAll;
            sAll = ConfigurationManager.AppSettings;

            foreach (string s in sAll.AllKeys)
                Console.WriteLine("Key: " + s + " Value: " + sAll.Get(s));

            Console.ReadLine();
        }
    }
}

Observação

Esse código está direcionando o .NET Framework 2.0. Se você estiver usando o .NET Framework 1.0 ou o .NET Framework 1.1, altere todas as instâncias da ConfigurationManager classe para ConfigurationSettings.

Lista de arquivos de configuração completa (ConConfig.exe.config)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="Key0" value="0" />
        <add key="Key1" value="1" />
        <add key="Key2" value="2" />
    </appSettings>
</configuration>

Verificar se ele funciona

Pressione F5 para executar o código. A janela Console deve exibir os pares de chave/valor da <appSettings> seção do arquivo de configuração associado da seguinte maneira:

The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2

Solução de problemas

  • O arquivo de configuração é salvo no formato XML. Verifique se você segue todas as regras de sintaxe XML. Lembre-se de que XML é sensível a casos. Se o XML não estiver bem formado ou se um elemento estiver escrito incorretamente, você receberá uma System.Configuration.Configuration exceção.

    Por exemplo, se você adicionar o atributo chave de um <add> elemento com um maiúscula K em vez de um maiúsculas k ou se a <appSettings> seção aparecer como <AppSettings> (com uma maiúscula A em vez de uma minúscula a), você receberá uma mensagem de erro.

  • O arquivo de configuração deve ser salvo na mesma pasta que seu aplicativo associado.

  • Você deve usar a seguinte sintaxe para o nome do arquivo de configuração:
    <ApplicationName>.<ApplicationType>.config

    Onde <ApplicationName> é o nome do aplicativo. <ApplicationType> é o tipo de aplicativo, como .exe. E .config é o sufixo necessário.

Referências