buon Config a tutti :)

di Marco Leoncini, in asp.net,

se vi dovesse capitare di sviluppare sezioni personalizzate del web.config asp.ne 2.0, mette in campo una bella serie di novità, tutte orientare ad uno sviluppo rapito e pulito.
accantonata l'interfaccia System.Configuration.IConfigurationSectionHandler, dalla quel le nostre classi dovevano ereditare per accedere alle impostazione dichiarate nel Web.config, facciamo la conoscenza di System.Configuration.ConfigurationSection.
se le novità si fermassero semplicemente ad un cambio di ereditarietà, sarebbe ben poca cosa.
la grande novità invece riguarda un nuovo modello di sviluppo, chiamato Declarative Model o attributed model, che ci permette di creare una nuova sezione definendo le proprietà e decorandole con degli attributi.
ecco un breve esempio:

public class CoreSection : ConfigurationSection
{
public CoreSection(){}
public CoreSection(DBProviderFactoryElement dbProviderElement) 
{
FactorySetting = dbProviderElement;
}
<strong>[ConfigurationProperty("dbProviderFactory", IsRequired = true)]</strong>
public DBProviderFactoryElement FactorySetting
{
get
{
return (DBProviderFactoryElement)this["dbProviderFactory"];
}
set 
{
this["dbProviderFactory"] = value;
}
}
}
 
public class DBProviderFactoryElement : ConfigurationElement
{
<strong>[ConfigurationProperty("name", DefaultValue = "SqlClientFactory", IsRequired = false)]</strong>
public string Name
{
get
{
return (string)base["name"];
}
set
{
base["name"] = value;
}
}
<strong>[ConfigurationProperty("type", DefaultValue = "System.Data.SqlClient.SqlClientFactory", IsRequired = false)]</strong>
public string Type
{
get
{
return (string)base["type"];
}
set
{
base["type"] = value;
}
}
<strong>[ConfigurationProperty("connectionString", DefaultValue = "", IsRequired = true)]</strong>
public string ConnectionString
{
get
{
return (string)base["connectionString"];
}
set
{
base["connectionString"] = value;
}
} 

public DBProviderFactoryElement() { }
public DBProviderFactoryElement(string name, string connectionString, string type)
{
Name = name;
ConnectionString = connectionString;
Type = type;
}
}

Semplic Rapido e soprattutto pulito :)
rimane poco da fare se non aggiungere la sezione nel web.config

<configSections>
<sectionGroup name="coreSetting">
<section name="factorySetting" type="Soluzioni4D.Core.Configuration.CoreSection, Soluzioni4D.Core" allowLocation="true" allowDefinition="Everywhere"/>
</sectionGroup>
</configSections>
<coreSetting>
<factorySetting>
<dbProviderFactory type="full" name="nomignolo" connectionString="connettiti al pc"/>
</factorySetting>
</coreSetting>

per gli auguri veri ci sentiamo più avanti :)
Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese