Desenvolvimento - ASP. NET

Criando Sections Customizados

Olá pessoal, hoje gostaria de informar e mostrar como criar novas sections...

por Mauricio Junior



Olá pessoal, hoje gostaria de informar e mostrar como criar novas sections customizadas. Até o momento testei a solução no Visual Studio .NET 2010 e 2005, funcionou perfeitamente. Acredito que funcione nas versões sem qualquer problema.

Usado para desenvolvimento:

- Visual Studio .NET 2010

- Linguagem C#.NET

- Web.config

O primeiro passo foi gerar a o website ou o projeto do tipo web. Dependendo da forma que gerar, é necessário inserir alguns dados a mais no web.config da aplicação. Com base neste artigo, você pode criar várias outras formas de desenvolvimento e customização de sectionConfigurations.

Segundo passo foi gerar uma classe .cs para configuração do arquivo. Criei a classe CustomConfiguration.cs.

Importes necessários: (Code 1.1)

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

Code 1.1

É necessário extender a classe ConfigurationSection. (Code 1.2)

public class CustomConfiguration : ConfigurationSection

{}

Code 1.2

O passo seguinte foi gerar duas propriedades dentro do arquivo de configuração. Os dois artigos são do tipo Int32. (Code 1.3)

    // First Number Property

    [ConfigurationProperty("firstNumber", DefaultValue=1, IsRequired=true)]

    [IntegerValidator(MinValue=-100, MaxValue=100)]

    public Int32 FirstNumber

    {

        get

        { return (Int32)this["firstNumber"]; }

        set

        { this["firstNumber"] = value; }

    }

    // Second Number Property

    [ConfigurationProperty("secondNumber", DefaultValue=1, IsRequired=true)]

    [IntegerValidator(MinValue=-100, MaxValue=100)]

    public Int32 SecondNumber

    {

        get

        { return (Int32)this["secondNumber"]; }

        set

        { this["secondNumber"] = value; }

    }

Code 1.3

            Gerei o construtor recebendo dois parâmetros de entrada. Um construtor vazio e outro recebendo parâmetro. (Code 1.4)

// Construtor vazio

    public CustomConfiguration()

    {

    }

   // Construtor recebendo parâmetros

    public CustomConfiguration (Int32 firstValue, Int32 secondValue)

    {

        FirstNumber = firstValue;

        SecondNumber = secondValue;

    }

Code 1.4

O próximo passo é gerar dentro do arquivo web.config as configurações customizadas. Dentro da tag <configuration> existe <configSections> responsável para configuração da sectionGroup. (Code 1.5).

<sectionGroup name="customSection">

   <section name="settings" type="CustomConfiguration" allowLocation="true" allowDefinition="Everywhere" />

</sectionGroup>

Code 1.5

Note que o tipo (type) é o mesmo nome da classe de configuração. O nome (name) settings é o nome que escolhi para gerar a segunda tag customizada. Se a sua aplicação estiver usando namespace, basta colocar no tipo todo o namespace até a classe.

<sectionGroup name="customSection">

   <section name="settings" type="MinhaAplicacao.Classe.Util,CustomConfiguration" allowLocation="true" allowDefinition="Everywhere" />

</sectionGroup>

Depois de fechar a tag </configSections>

é necessário inserir a outra customizada com os valores e as duas propriedades. (Code 1.6)

<customSection>

 <settings firstNumber="20"secondNumber="43" />

</customSection>

Code 1.6

Note que a sessão customizada possui os mesmos nomes colocados na primeira tag. O nome customSection foi gerada na segunda tag XML e assim por diante. As duas propriedades firstNumber e secondNumber possuem valores do tipo inteiro na segunda tag XML adicionada.

<configSections>

  <sectionGroup name="customSection">

    <section name="settings" type=" MinhaAplicacao.Classe.Util.CustomConfiguration, MinhaAplicacao" allowLocation="true" allowDefinition="Everywhere" />

  </sectionGroup>

</configSections>

Dessa maneira, a classe de leitura foi feita e o arquivo config gerado, basta agora mostrar como é feito a leitura desses valores. Para ler o arquivo, basta colocar o código 1.7.

CustomConfiguration config = (CustomConfiguration)System. Configuration. ConfigurationManager . GetSection (" customSection / settings ");

Code 1.7

Essa linha de código pode ser colocada no seu Page_Load sem qualquer problema.

O GetSection("customSection/settings"); busca  diretamente as tags com este nome.

Fica simples depois, basta pegar as propriedades.

Colocando a instância e ponto aparece o nome da propriedade.

Int32 primeiro = config.FirstNumber

Int32 segundo = config.SecondNumber

Code 1.9

Somando os valores veja o resultado.

Mauricio Junior

Mauricio Junior - Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; . Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A.
Blog:
blog.mauriciojunior.org
Site pessoal: www.mauriciojunior.org