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