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.

Quaisquer dúvidas mandem emails para wellingtonbalbo@gmail.com ou deixem nos comentários deste artigo que responderei o mais rápido possível.

Até o próximo artigo!