Il web.config è nostro amico ??
Molti credo troppi, non conoscono le vere potenzialità di questo elemento. La letteratura sull'argomento è però molto molto sostanziosa.
Ma per l'appunto il web.config è davvero un nostro amico ?? SI certo che si, basta saperlo sfruttare bene.
Parafrasando i tanti esempi che si possono trovare sul web si possono ottenere mille e milli utilizzi, mille scopi e mille interpretazioni. Nel mio caso come più volte è capitato lo scopo è di presentare una funzionalità e di lasciare al lettore
la possibilità di estendere quanto ha letto con la sua realtà.
Partiamo però da una necessità:
- per un web method di un web services ci serve una particolare configurazione.
- questa è riassumibile con gli attributi "ip,hostName";
va da se che è un perfetto esempio di livello 0.
Creiamo quindi una classe che abbia quest'aspetto...
public class MySpecialConfiguration: ConfigurationSection
{
[ConfigurationProperty("IP")]
public string IP
{
get { return (string)base["IP"]; }
}
[ConfigurationProperty("hostName")]
public string hostName
{
get { return (string)base["hostName"]; }
}
}
Questa classe Estende configurationSection e aggiunge due attributi (IP, hostName).. entrambi come string..
Ora nel web Method...
MySpecialConfiguration msc = ConfigurationManager.GetSection("MySpecialConfiguration") as MySpecialConfiguration;
this.IP = msc.IP;
this.hostName = msc.hostName
tramite il configurationManager.GetSection ([nome]) recuperiamo il nome della section che ci serve.
MySpecialConfiguration msc = (MySpecialConfiguration) ConfigurationManager.GetSection("MySpecialConfiguration");
E' la stessa cosa, scegliete voi come scriverla...
E ora ... la parte clue... il web.config... ( ricordatevi che [ /] che devono essere viste come maggiore e minore...)
[configuration]
[configSections]
[section name="MySqlParameters"
type=" thisSample.MySpecialConfiguration, thisSample" /]
[/configSections]
Che cosa diavolo è type ??? thisSample.MySpecialConfiguration è il nome della classe che abbiamo implementato prima
mentre thisSample è l'assembly
Questa è la dichiarazione della nostra section, ma ci serve anche
[MySqlParameters
IP="127.0.0.1"
hostName="nudrubufu"/]
al richiamo del web method verranno letti i parametri di configurazione...
A ben pensarci questo è proprio tutto quello che serve per aggiungere le proprie "specia conf" al web conf...
Nessun commento:
Posta un commento