Compartilhar via


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.

Observação

O código neste artigo é direcionado ao .NET Framework 2.0 e versões posteriores. Para saber a quais versões específicas a ConfigurationManager classe se aplica, consulte a seção Aplica-se a .

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

Requisitos

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

  • Microsoft Windows
  • Visual C#

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

  • {1>linguagem XML<1}
  • Arquivos de configuração do .NET

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

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

O System.Configuration e os System.Collections.Specialized namespaces 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 Novoe selecione Projeto.

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

    Observação

    No Visual Studio .NET, selecione Projetos do Visual C# em Tipos de Projeto e, em seguida, 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 do Gerenciador de Soluções está visível. Se não estiver visível, pressione a combinação de teclas CTRL+ALT+L.

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

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

  7. Na caixa de texto Nome, digite App.config e 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 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> tags e </configuration> .

    Por exemplo, o arquivo de configuração a seguir inclui uma <appSettings> seção que especifica três pares 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. No Gerenciador de Soluções, clique duas vezes em Program.cs para exibir a janela de código. Adicione as instruções a seguir ao seu módulo de código.

    Observação

    Essas instruções devem aparecer antes de quaisquer outras instruções 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. clique em 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 Main seção da seguinte maneira:

    string sAttr;
    
  12. Para recuperar um valor para uma chave especificada da <appSettings> seção do arquivo de configuração, use o AppSettings Get método da propriedade da classe ConfigurationManager. A classe ConfigurationManager está no namespace System.Configuration. 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 sAttr variável de cadeia de caracteres. Se não existir uma chave para esse valor, nada será armazenado no sAttr.

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

    Console.WriteLine("The value of Key0 is "+sAttr);
    
  14. Você pode usar uma referência à AppSettings propriedade para recuperar todos os pares 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 classe NameValueCollection está no namespace System.Collections.Specialized.

    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
    
  15. A AllKeys propriedade of faz referência a uma matriz de cadeia de NameValueCollection caracteres que tem uma entrada para cada chave que o aplicativo recupera. Use uma construção foreach para iterar pela AllKeys matriz para acessar cada chave que o aplicativo recupera. Cada entrada de chave é 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 sAllNameValueCollection como um índice no para obter seu valor associado.

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

Listagem de código completo

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();
        }
    }
}

Listagem completa do arquivo de configuração (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>

Verifique se funciona

Pressione F5 para executar o código. A janela Console deve exibir os pares 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

Solucionar problemas

  • O arquivo de configuração é salvo no formato XML. Certifique-se de seguir todas as regras de sintaxe XML. Lembre-se de que o XML diferencia maiúsculas de minúsculas. Se o XML não estiver bem formado ou se um elemento estiver incorreto, você receberá uma System.Configuration.Configuration exceção.

    Por exemplo, se você adicionar o atributo de chave de um <add> elemento com um K maiúsculo em vez de um k minúsculo, ou se a <appSettings> seção aparecer como <AppSettings> (com um A maiúsculo em vez de um a minúsculo), 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:
    <Nome do aplicativo>.<ApplicationType.config>

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

Referências