web-dev-qa-db-fra.com

Store String Array Dans appSettings?

Je voudrais stocker un tableau de chaînes unidimensionnel comme entrée dans mon appSettings. Je ne peux pas simplement séparer les éléments avec , ou | car les éléments eux-mêmes pourraient contenir ces caractères.

Je pensais à stocker le tableau en tant que JSON puis à le désérialiser en utilisant le JavaScriptSerializer.

Existe-t-il une "bonne"/meilleure façon de procéder?

(Mon JSON idée semble un peu hacky)

26
Greg

Vous pouvez utiliser les AppSettings avec un System.Collections.Specialized.StringCollection .

var myStringCollection = Properties.Settings.Default.MyCollection;
foreach (String value in myCollection)
{ 
    // do something
}

Chaque valeur est séparée par une nouvelle ligne.

Voici une capture d'écran (allemand IDE mais cela pourrait être utile quand même))

enter image description here

24
Tim Schmelter

Pour les entiers, j'ai trouvé le moyen suivant plus rapidement.

Tout d'abord, créez une clé appSettings avec des valeurs entières séparées par des virgules dans votre app.config.

<add key="myIntArray" value="1,2,3,4" />

Ensuite, divisez et convertissez les valeurs en tableau int à l'aide de LINQ

int[] myIntArray =  ConfigurationManager.AppSettings["myIntArray"].Split(',').Select(n => Convert.ToInt32(n)).ToArray();
10
akd

Pour les chaînes, c'est facile, ajoutez simplement ce qui suit à votre web.config fichier:

<add key="myStringArray" value="fred,Jim,Alan" />

puis vous pouvez récupérer la valeur dans un tableau comme suit:

var myArray = ConfigurationManager.AppSettings["myStringArray"].Split(',');
9
Ed Homer

Vous pouvez également envisager d'utiliser la section/Collection de configuration personnalisée à cet effet. Voici un exemple:

<configSections>
    <section name="configSection" type="YourApp.ConfigSection, YourApp"/>
</configSections>

<configSection xmlns="urn:YourApp">
  <stringItems>
    <item value="String Value"/>
  </stringItems>
</configSection>

Vous pouvez également vérifier cet excellent complément Visual Studio qui vous permet de concevoir graphiquement des sections de configuration .NET et génère automatiquement tout le code requis et une définition de schéma (XSD) pour eux.

5
Kibria