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:
Inicie o Visual Studio .NET ou o Visual Studio.
No menu Arquivo , aponte para Novoe selecione Projeto.
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.
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.
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.
Na lista Adicionar Novo Item, selecione Arquivo XML.
Na caixa de texto Nome, digite App.config e selecione Adicionar.
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>
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;
Adicione uma referência a System.Configuration.dll seguindo estas etapas:
- No menu Projeto, selecione Adicionar Referência.
- Na caixa de diálogo Adicionar Referência , selecione a guia .NET .
- Localize e selecione o Nome do componente de
System.Configuration
. - clique em OK.
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 naMain
seção da seguinte maneira:string sAttr;
Para recuperar um valor para uma chave especificada da
<appSettings>
seção do arquivo de configuração, use oAppSettings
Get
método da propriedade da classe ConfigurationManager. A classeConfigurationManager
está no namespaceSystem.Configuration
. Quando oAppSettings.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 nasAttr
variável de cadeia de caracteres. Se não existir uma chave para esse valor, nada será armazenado nosAttr
.sAttr = ConfigurationManager.AppSettings.Get("Key0");
Para exibir o valor que o aplicativo recupera na janela Console, use
Console.WriteLine
o seguinte:Console.WriteLine("The value of Key0 is "+sAttr);
Você pode usar uma referência à
AppSettings
propriedade para recuperar todos os pares chave/valor na<appSettings>
seção. Quando você usa aAppSettings
propriedade, o aplicativo retorna todos os pares de chave/valor associados. Esses pares são armazenados em umNameValueCollection
tipo. ONameValueCollection
contém entradas de chave/valor para cada chave que o aplicativo recupera. A classeNameValueCollection
está no namespaceSystem.Collections.Specialized
.NameValueCollection sAll ; sAll = ConfigurationManager.AppSettings;
A
AllKeys
propriedade of faz referência a uma matriz de cadeia deNameValueCollection
caracteres que tem uma entrada para cada chave que o aplicativo recupera. Use uma construção foreach para iterar pelaAllKeys
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, useConsole.WriteLine
para exibir a chave e seu valor associado na janela Console. A chave atual que o aplicativo processa está ems
. Use-osAllNameValueCollection
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.