À l'aide de plusieurs valeurs pour une clé dans appSettings
Je suis en train d'apprendre sur la façon d'utiliser les fichiers de configuration et j'ai rencontré quelques problèmes que j'espère que quelqu'un ici peut me donner quelques conseils. Il n'a pas d'importance si mes fichiers sont en format XML ou pas, mais la majorité des exemples que j'ai lus sont de les utiliser et je suis pour tout ce qui rend ma vie plus facile.
le problème Im fonctionnant en est que le appSettings fichier semble être configuré pour n'accepter qu'une valeur pour une clé et je voudrais avoir quelque chose de similaire à:
<key="Machine List" value="Server105" />
<key="Machine List" value="Server230" />
J'ai constaté un hack ici mais il a été écrit de plus de 6 ans et je ne sais pas si il y a une meilleure façon.
Encore une fois, ce n'est pas grave si c'est en XML, fichier plat, etc.... Im juste essayer d'apprendre à utiliser des fichiers de configuration au lieu de codage en dur des valeurs directement dans l'application.
Merci pour votre aide.
Comment est-ce que "peu de sens"? Parfois, vous avez besoin d'une liste de valeurs.
Un exemple serait une liste d'adresses e-mail. Il est plus facile d'avoir une ligne par adresse plutôt que de délimiter avec
;
ou ,
, analyser les valeurs, etc. Il est aussi plus facile de commenter une seule entrée que pour le localiser dans la config et le supprimer entièrement.Ce que je faisais référence est indiqué dans la accepté de répondre.
OriginalL'auteur Leroy Jenkins | 2010-11-18
Vous devez vous connecter pour publier un commentaire.
si vous avez vraiment besoin de stocker plusieurs machines à sous à la clé, il serait plus approprié de le faire:
avec le délimiteur d'être un personnage de votre choix.
OriginalL'auteur Jeremy B.
Une alternative à l'entrée des attributs serait d'ajouter des nœuds enfants à votre configuration d'un nœud:
De cette façon, vous n'avez pas besoin de manipulations de chaînes pour extraire les différentes valeurs.
B.: en effet. Le appSettings xml doit contenir des valeurs-clés où les valeurs sont des chaînes de caractères. Toutefois, MS a obsolesced appSettings, et conseille d'utiliser le ConfigurationManager à la place. msdn.microsoft.com/en-us/library/....
Merci pour l'info, je m'en souviendrai la prochaine fois que je besoin de quelque chose comme cela, je ne l'aime mieux que la manipulation de la chaîne.
Juste comme pour info... le problème était très simple, et vous deux a aider à me diriger dans la bonne direction. Par accident, j'ai ajouté un fichier de paramètres et non pas le Fichier de Configuration d'Application. Donc, lorsque vous tentez de configurer le fichier de paramètres via le VS de l'interface graphique, je ne pouvais pas ajouter plus d'une valeur à un nom. Désolé pour l'erreur stupide et merci encore pour votre aide.
OriginalL'auteur xtofl
Vous pouvez utiliser des sections de configuration où vous pouvez définir votre propre configuration. Juste ajouter
après la
<configuration>
et vous pouvez ajouter votre section personnalisée juste après la appsettingÀ lire vous devez créer quelques classes
Remplacés DeserializedElement sera désérialiser les données Xml(intérieur) de la QueryElement1 & 2.
De lire les valeurs de l'application principale, vous avez juste besoin d'appeler le suivant:
OriginalL'auteur Vinod Srivastav
Peut-être vous devriez revoir votre conception. Je viens de mettre la liste que vous voulez dans un autre fichier et non le fichier de configuration. Vous pourriez faire une chaîne délimitée mais alors, si la liste a obtenu longue, il serait difficile à gérer. Vous pouvez simplement le mettre dans un fichier texte ou XML/JSON fichier. Voici un code qui pourrait être un bon endroit pour commencer.
Je l'ai fait une classe statique, de sorte qu'il ne serait que de lire le fichier une fois et pas à chaque fois vous avez besoin pour obtenir des informations.
Ce pourrait également être une bonne chose à mettre dans une base de données si vous avez besoin de plus de fonctionnalités. Mais pour une petite lecture seule genre de chose, cela fonctionne mieux qu'une chaîne délimitée par des valeurs plus longues.
OriginalL'auteur Robert Stokes