Ho cercato di rimuginare su una domanda che non so come risolvere e probabilmente ha una soluzione semplice, ma sto cercando di trovare una soluzione semplice.
Il seguente scenario è come tale. Diciamo che abbiamo le seguenti variabili.
string username;
string password;
string domain;
string location;
e voglio eseguire la stessa funzione su di essi
void AssignValueFromConfigFile()
{
username = ConfigurationManager.AppSettings["username"];
if (username == null)
throw new ValueNotFound("username");
password = ConfigurationManager.AppSettings["password"];
}
..... ecc. per ognuno
Questo è ovviamente davvero noioso e il modo sbagliato per farlo. Possiamo farlo funzionare in un dizionario se avessimo:
var values = new Dictionary<string,string>() { {"username",""},{"password",""},{"domain",""},{"location",""}}
void AssignValueFromConfigFile()
{
foreach(var val in values)
{
val.Value = ConfigurationManager.AppSettings[val.Key];
if (val.Value == null)
throw new ValueNotFound(val.Value);
}
}
Ma poi perdiamo la capacità di chiamare le variabili locali e dobbiamo sapere cosa sono nel dizionario. Come si ottiene questo?