Il framework .NET mette a disposizione degli sviluppatori delle API (System.Configuration.ConfigurationSettings.AppSettings) per la lettura della sezione AppSettings dei files di configurazione tipo app.config o web.config. Ecco uno stralcio di codice di una tipica sezione AppSettings all'interno di un file .config:
<configuration>
<appSettings>
<add key="ConnectionString" value="server=.;database=pubs;
userID=sa;pwd=pippo;"/>
<add key="Debug" value="true"/>
</appSettings>
</configuration>
Per leggere il valore della chiave ConnectionString
ConfigurationSettings.AppSettings["connectionString"]
Un'alternativa valida a questo approccio e che anch'io utilizzo, consiste nel creare un oggetto che faccia da wrapper accesso fortemento tipizzato
class sealed Globals
{
public static string ConnectionString
{
get
{
return ConfigurationSettings.AppSettings["ConnectionString"];
}
}
public static boolean IsDebug
{
get
{
//Eventuale validazione del valore...
return Boolean.Parse( ConfigurationSettings.AppSettings["Debug"] );
}
}
}
La classe Globals
in modo sicuro e immediato e con molteplici vantaggi:
- Possiamo sfruttare la tecnologia Intellisense Visual Studio
- Viene eliminata la dipendenza dal namespace System.Configuration
- Tutto il codice per accedere ai settaggi dell'applicazione viene centralizzato (con tutti i benifici del caso) all'interno di un'unica classe.
-
Viene ridotta la possibilità di commettere errori non rilevabili in fase di compilazione:
String connString = ConfigurationSettings.AppSettings["ConnectionsString"];
Con l'arrivo di ASP.NET 2.0 questo tipo di approccio fortemente tipizzato per la lettura dei files di configurazione non sarà più necessario, in quanto già integrato all'interno del framework, grazie all'introduzione di classi appositamente studiate allo scopo.