1. Web.Config
No web.config de sua aplicação, começaremos declarando a nova section a ser utilizada.
Chamaremos ela de mySection. Como nodo filho de Configuration, Adicionaremos:
<configSections>
<section name="mySection" type="MySectionClass"/>
</configSections>
Onde name é o nome da section que deverá ser escrita no Web.Config e MySectionClass é a classe que implementa essa sessão do web.config.
2. A classe MySectionClass.cs
Adicionaremos ao nosso projeto uma nova classe chamada MySectionClass.cs que implementa a interface IConfigurationSectionHandler
//custom web.config section
public class MySectionClass: Hashtable, IConfigurationSectionHandler
{
#region IConfigurationSectionHandler Members
public object Create(object parent, object configContext, System.Xml.XmlNode section)
{
XmlNodeList NodeSettings = section.SelectNodes("/mysection/*");
foreach (XmlNode NodeSetting in NodeSettings)
{
this.Add(NodeSetting.Attributes.GetNamedItem("name").Value.ToString(), NodeSetting.Attributes.GetNamedItem("value").Value);
}
return this;
}
#endregion
}
Essa classe buscará no Web.Config o XPath /mysection/* e buscará todos em todos os nodos filhos os atributos name e value.
3. Voltando ao Web.Config
Após o appSettings, vamos iniciar a declaração dos itens que terá nossa configuração. Adicionando as seguintes linhas:
<mySection> <add name="teste1" value="Valor de Teste 1" /> <add name="teste2" value="Valor de Teste 2" /> <add name="teste3" value="Valor de Teste 3" /> </mySection>
Você poderá definir os valores para cada atributo nessa parte.
4.Lendo a nova section em sua aplicação
Sempre que precisar ler essa nova sessão em seu web.config, voce deve delarar o tipo conforme definido no type="MySectionClass":
MySectionClass msc = (MySectionClass)WebConfigurationManager.GetSection("mySection");
Response.Write(msc["teste1"].ToString());
//output "Valor de Teste 1
Espero ter ajudado.
0 comentários:
Postar um comentário