Ao desenvolver uma aplicação do tipo Windows Services, Windows Forms ou Console Application nos deparamos com 2 tipos de ambientes de desenvolvimento: Release e Debug.
Por padrão essas aplicações contém o seguinte arquivo de configuração: App.config
Para criar os arquivos de configuração por ambiente será necessário adicionar a extensão SlowCheetah no seu Visual Studio
Em seguida instalar o pacote do SlowCheetah no seu projeto
Após concluir a instalação será adicionado a referência dentro do arquivo packages.config e caso você ainda não tenha o arquivo o mesmo será gerado de forma automática.
Com tudo instalado, clique em cima do App.config com o botão direito e será exibido a opção de adicionar transformação
Ao clicar nessa opção será gerado dois arquivos App.Debug.config e App.Release.config
No arquivo principal App.Config adicione a tag e dentro dela crie algumas chaves e valores correspondentes, na minha aplicação de exemplo ficou assim:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="Cep" value="01001000"/>
<add key="Formato" value="json"/>
</appSettings>
</configuration>
A minha aplicação realiza a busca de endereços a partir da API de busca CEP passando como parâmetro o CEP e o formato de retorno
Nos arquivos de configuração por ambiente App.Debug.Config e App.Release.Config será necessário adicionar os campos xdt:Transform="SetAttributes" e xdt:Locator="Match(key)" em toda propriedade, no meu caso ficou assim:
App.Release.Config
<?xml version="1.0" encoding="utf-8"?>
<!--For more information on using transformations see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add key="Cep" value="22222000" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
<add key="Formato" value="json" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
</appSettings>
</configuration>
App.Debug.Config
<?xml version="1.0" encoding="utf-8"?>
<!--For more information on using transformations see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add key="Cep" value="77777000" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
<add key="Formato" value="json" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
</appSettings>
</configuration>
Dessa forma o compilador em tempo de execução irá trocar os valores configurados no arquivo principal por aqueles configurados no ambiente em execução.
Para realizar o teste, no Visual Studio tem a opção de selecionar o ambiente (no meu caso vou deixar o de release)
Criei o seguinte código para obter as propriedades do ambiente
private CEP ObtemPropriedadesDoAmbiente
{
get
{
CEP dados = new CEP();
dados.Cep = ConfigurationManager.AppSettings["Cep"];
dados.Formato = ConfigurationManager.AppSettings["Formato"];
return dados;
}
}
E os dados retornados, será o que foi configurado no ambiente de release
Bom, é isso pessoal!
Espero que tenham gostado e até o próximo post :)
Top comments (0)