Criando Sections Customizados


por Mauricio Junior em 1/1/2011 0

   
    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.8

Somando os valores veja o resultado.



voltar   comente  subir

 
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. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.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



Comentários:

Comente (dê sua opinião):
Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

User Control Windows executando no Internet Explorer (parte 2 de 2)
Novo Firefox 3.0 - o chamado Minefield
Método SHA 256
Criando XML a partir do DataSet Tipado com Visual Studio.NET 2005 – Parte I
Ebook: Aprendendo Desenvolver WebServices
Método MD5
Lendo Arquivo txt usando Visual Studio.NET 2005
Contagem Regressiva com C# e JavaScript
Dica para acrescentar valor
Criando Email Modelo no Mail - MacBook
Montando estrutura de um site MVC 2 com Visual Studio .NET 2010
LER: prevenir ou remediar?
Vídeo do Visual SourceSafe - Parte I
LG Optimus 7 com Windows Phone 7
Teclas de Atalho do Visual Studio .NET 2010
Dica: SetFocus diferente
Acessibilidade
Criando TreeView com Visual Studio.NET 2005 (passo 1)
II Encontro .NET em Brasília
Definindo o botão padrão.
Utilizando ASP:Menu
Microsoft Rolls Out Major Xbox Software Update
Event Log Parte II - Visual Studio.NET 2005
Usando Split no C#
Vídeo - Tecla de Atalho
Vídeos Online Gratuitos
Sistema de Login – Parte IV
VSTS 2008
Criando uma aplicação de uma maneira nova para melhor publicação
Sistema de Login em ASP – Parte II
Sistema ASP 3.0 utilizando 3 camadas – Parte 1
Orientação a Objetos com Visual Studio.NET 2005 (o famoso OO) – parte 1
Tecla ESC na tela WEB
Máscara valor que funciona
ModalDialogExtender