Desenvolvimento - ASP. NET
Criando Sections Customizados
Olá pessoal, hoje gostaria de informar e mostrar como criar novas sections...
por Mauricio JuniorOlá 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.