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:
Inicie o Visual Studio .NET ou o Visual Studio.
No menu Arquivo, aponte para Novo e, em seguida, selecione Projeto.
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.
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.
Em Gerenciador de Soluções, clique com o botão direito do mouse no nome do projeto, selecione Adicionar e selecione Novo Item.
Na lista Adicionar Novo Item , selecione Arquivo XML.
Na caixa de texto Nome , digite App.confige 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 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>
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;
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
. - selecione 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 na seção daMain
seguinte maneira:string sAttr;
Para recuperar um valor para uma chave especificada da
<appSettings>
seção do arquivo de configuração, use oGet
método daAppSettings
propriedade daConfigurationManager
classe. AConfigurationManager
classe está noSystem.Configuration
namespace. 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 na variável desAttr
cadeia de caracteres. Se uma chave não existir para esse valor, nada será armazenado emsAttr
.sAttr = ConfigurationManager.AppSettings.Get("Key0");
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);
Você pode usar uma referência à
AppSettings
propriedade para recuperar todos os pares de 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. ANameValueCollection
classe está noSystem.Collections.Specialized
namespace.NameValueCollection sAll ; sAll = ConfigurationManager.AppSettings;
A
AllKeys
propriedade de referências deNameValueCollection
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 daAllKeys
matriz para acessar cada chave que o aplicativo recupera. Cada entrada de chave emAllKeys
é 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-o como um índice no para obter seusAllNameValueCollection
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>.configOnde <ApplicationName> é o nome do aplicativo. <ApplicationType> é o tipo de aplicativo, como
.exe
. E.config
é o sufixo necessário.
Referências
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários