J'ai certaines constantes de chaîne auxquelles j'ai besoin d'accéder à partir de plusieurs fichiers. Puisque les valeurs de ces constantes peuvent changer de temps en temps, j'ai décidé de les mettre dans AppSettings plutôt que dans une classe de constantes afin de ne pas avoir à recompiler chaque fois que je change une constante.C# AppSettings array
Parfois, je dois travailler avec les chaînes individuelles et parfois je dois travailler avec chacune d'entre elles à la fois. Je voudrais faire quelque chose comme ceci:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="CONST1" value="Hi, I'm the first constant." />
<add key="CONST2" value="I'm the second." />
<add key="CONST3" value="And I'm the third." />
<add key="CONST_ARR" value=[CONST1, CONST2, CONST3] />
</appSettings>
</configuration>
Le raisonnement étant que je serai alors en mesure de faire des choses comme
public Dictionary<string, List<double>> GetData(){
var ret = new Dictionary<string, List<double>>();
foreach(string key in ConfigurationManager.AppSettings["CONST_ARR"])
ret.Add(key, foo(key));
return ret;
}
//...
Dictionary<string, List<double>> dataset = GetData();
public void ProcessData1(){
List<double> data = dataset[ConfigurationManager.AppSettings["CONST1"]];
//...
}
Est-il possible de le faire? Je suis assez nouveau à ce sujet et je concède que ce pourrait être un design horrible.
ce qui est pour la méthode foo? –
@AkashKC C'est juste une méthode qui prend une chaîne comme argument. L'idée est que pour chaque constante j'ajoute quelque chose qui dépend de cette constante dans le dictionnaire. – Liam
Réponse affichée. S'il vous plaît jeter un oeil et laissez-moi savoir si l'approche fonctionne pour vous ou non –