Voltando do ponto em que paramos, antes de criarmos as propriedades em nossa classe, temos que usar os atributos de configuração:
Uso o ConfigurationProperty, que espera o nome da propriedade, que no nosso exemplo é Producao, e o atributo IsRequired como true, que informa que ela é obrigatória.
Após isso, crie as seguintes propriedades, ambas já “setadas” com o ConfigurationProperty:
[ConfigurationProperty("Ambiente", IsRequired = true)]
public string Ambiente { get; set; }
[ConfigurationProperty("Database", IsRequired = true)]
public string Database { get; set; }
Agora no método que foi criado pela implementação, vamos alimentar as propriedades desta forma:
public object Create(object parent, object configContext, System.Xml.XmlNode section)
{
Ambiente = section.Attributes["Ambiente"].Value;
Database = section.Attributes["Database"].Value;
return this;
}
Resumindo, nossa classe InformacoesAmbiente é um tipo que irá armazenar e recuperar os dados do Web.Config para minha aplicação. Lá no Web.Config criei uma seção, com suas propriedades que estão descritas em minha classe, que implementa o tipo da seção do Web.Config, que usa a implementação IConfigurationSectionHandler.
Finalizando, dentro deste método Create, passamos as variáveis Ambiente e Database, criadas acima, que recebem os atributos referentes às propriedades criadas em minha seção do Web.Config.
Agora vá ao Default.aspx e crie dois labels e dois textboxes, para que fiquem dessa forma:

Os Textboxes irão exibir as informações armazenadas no Web.Config. Altere o ID deles para txtAmbiente e txtBancoDados, respectivamente.
Agorá vá a página de códigos da Default.aspx e crie um método chamado RecuperaDados:
private void RecuperaDados()
{
try
{
//Instancio a classe InformacoesAmbiente
InformacoesAmbiente objInfo = new InformacoesAmbiente();
//Faço um Cast(conversão) em meu objeto instanciado e uso o método GetSection
//para recuperar os dados da seção ConfigAmbiente que foi criada no Web.Config
objInfo = (InformacoesAmbiente)ConfigurationManager.GetSection("ConfigAmbiente");
//Com as informações armazenadas passo os valores das propriedades aos textboxes
txtAmbiente.Text = objInfo.Ambiente;
txtBancoDados.Text = objInfo.Database;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
Agora chame o método no Page_Load da página:
protected void Page_Load(object sender, EventArgs e)
{
RecuperaDados();
}
Salve o projeto e compile. Irá aparecer a mensagem para você modificar o Web.Config para permitir a compilação, clique em OK e aguarde.
Dessa forma vemos sendo preenchido os textboxes com os valores recuperados do Web.Config.
Faça um teste e altere os valores do Ambiente e do Database para Homologação e DBHomologacao, respectivamente, compile e veja o resultado:
Assim finalizo o artigo.
Para quem se interessar, disponibilizo o código fonte desse projeto aqui.
Até o próximo artigo!