Comment stocker un object dictionnaire dans mon fichier web.config?

Je voudrais stocker un dictionnaire de chaînes clé / valeur simple dans mon fichier de configuration Web. Visual Studio facilite le stockage d’une collection de chaînes (voir l’exemple ci-dessous), mais je ne sais pas comment procéder avec une collection de dictionnaires.

 value1 value2 value2  

Pourquoi réinventer la roue? La section AppSettings est conçue pour stocker des données de type dictionnaire dans votre fichier de configuration.

Si vous ne voulez pas mettre trop de données dans votre section AppSettings, vous pouvez regrouper vos valeurs associées dans leur propre section comme suit:

   

Vous pouvez accéder aux éléments de cette collection en utilisant

 using System.Collections.Specialized; using System.Configuration; public ssortingng GetName1() { NameValueCollection section = (NameValueCollection)ConfigurationManager.GetSection("MyDictionary"); return section["name1"]; } 

La réponse de Juliet est sur le point, mais FYI vous pouvez également mettre des configs supplémentaires dans des fichiers externes .config , en configurant votre web.config comme suit:

      

Ensuite, votre CustomDocTabs.config ressemble à ceci:

        

Maintenant, vous pouvez y accéder en code via:

 NameValueCollection DocTabMap = ConfigurationManager.GetSection("DocTabMap") as NameValueCollection; DocTabMap["A"] // == "B" 

Vous devez implémenter une section personnalisée (voir Concepteur de section de configuration ).

Ce que vous voulez vraiment, c’est quelque chose de proche:

      

Où le “nom” XmlAtsortingbute est une clé qu’il ne permettra pas d’en avoir plus d’un dans le code. En même temps, assurez-vous que Collection MyDictionary est également un dictionnaire.

Vous pouvez faire tout cela avec cet outil et combler les lacunes si nécessaire.

Dans les parameters de l’application, nous pouvons utiliser System.Collection.Specilized.SsortingngCollection

     Element1 Element2     

Accès à la liste:

 var element = Settings.Default.ElementsList[index] 

Je ne sais pas comment stocker un dictionnaire directement, mais vous pouvez facilement utiliser un tableau de chaînes pour stocker un dictionnaire. Pour chaque clé, paire de valeurs vous enregistrez la clé en tant que première chaîne et la valeur en tant que seconde. Ensuite, lors de la reconstruction du dictionnaire, vous pouvez annuler cet encodage.

 static Dictionary ArrayToDictionary(ssortingng[] data) { var map = new Dictionary(); for ( var i= 0; i < data.Length; i+=2 ) { map.Add(data[i], data[i+1]); } return map; }