Question

Existe-t-il une méthode intégrée en C # pour travailler avec des fichiers de configuration simples qui ne consomment pas de XML? Ou peut-être existe-t-il des bibliothèques gratuites populaires?

Je crée un outil simple à utiliser pour les non-programmeurs, et je ne veux pas le compliquer en ajoutant une interface utilisateur pour la modification de la configuration. Je veux juste que les utilisateurs (suffisamment à l'aise avec les ordinateurs) puissent ouvrir le fichier de configuration dans le bloc-notes et éditer / ajouter quelques lignes. C'est pourquoi je ne veux pas utiliser de fichier de configuration basé sur XML.

EDIT: Merci à tous pour vos réponses! Oui, il n’est pas difficile de lier une interface utilisateur simple pour éditer une configuration basée sur XML. mais ce n'est pas toujours approprié. par exemple, pour une application non-gui, ou pour une application très simple, vous ne voulez plus en ajouter pour vous garder au maximum de la simplicité. et il n'est même pas difficile d'écrire son propre analyseur de configuration, pour des paramètres clé / paire, des blocs ou des paramètres séparés par une ligne vierge. Mais je voulais simplement savoir ce qui était disponible, car une recherche rapide sur Google me donne beaucoup de pages sur le travail avec la configuration basée sur xml.

Je ne suis pas un développeur sw à temps plein et j'écris généralement de petits outils qui rendent ma vie et celle de mes collègues un peu plus effrayante au travail. L'utilisation de solutions connues et testées simplifie naturellement cette tâche.

Était-ce utile?

La solution

J'utilise généralement des fichiers INI pour une configuration simple. Il existe un article sur le projet de code qui fournit un wrapper pour Windows natif. Fonctions INI dans Kernel32.

Autres conseils

Vous pouvez essayer une bibliothèque que j'ai écrite et appelée DotNet.Config .

Il utilise de simples fichiers texte pour la configuration.

La configuration est conservée dans un fichier 'config.properties' qui ressemble à ceci:

size=12
dateTime=1/12/2014
name=Terry Tester
color=Blue

items.A=hello list
items.B=guten tag list
items.C=bonjour list

numbers.X=10
numbers.Y=20
numbers.Z=30

Il comprend un chargeur pratique qui convertit et applique les paramètres directement aux variables de membre en fonction de la convention de dénomination (y compris le chargement de groupes de paramètres dans des listes génériques).

Ou vous pouvez simplement saisir un paramètre en appelant à:

  

AppSettings.Retrieve ["mySetting"]

Vous pouvez trouver un exemple ici .

Vous pouvez en obtenir une copie ici: https://github.com/jknight/DotNet.Config

J'aime Nini, ce qui simplifie l'utilisation de XML pour les fichiers de configuration, mais vous pouvez également l'utiliser pour les fichiers INI.

http://nini.sourceforge.net/

Je pense que je choisirais de passer le temps nécessaire pour créer un éditeur simple et empêcher l’utilisateur de l’édition de fichiers de configuration. Sinon, vous risquez de devoir écrire beaucoup de code pour intercepter toutes les erreurs possibles que l'utilisateur pourrait injecter dans le système en bousillant le fichier de configuration. Lorsque vous contrôlez le format de fichier et pouvez tirer parti d’une interface utilisateur qui limite les saisies, le code est plus simple, à mon avis.

Mais, en fonction des utilisateurs, vous pouvez simplement opter pour la convention un-par-clé clé-séparateur-valeur. Lire cela est assez simple.

L’un des outils tiers que j’utilise utilise un fichier de configuration très simple. C'est un fichier texte simple, de forme libre, qui a la forme suivante:

keyword [args]

Il est prévu que chaque ligne commence par un mot clé et que tout ce qui suit soit simplement pris comme argument du mot clé. Il n'a pas la notion de paires clé / valeur comme argument, mais plutôt comme de simples listes. Les espaces sont le délimiteur de ce fichier de configuration. Cela ne fonctionnera peut-être pas pour chaque implémentation, mais cela fonctionnera pour celle-là.

La liaison est assez simple et lire / écrire un fichier XML à partir d’un contrôle de grille lié que l’utilisateur peut utiliser comme éditeur, élimine certainement de nombreux problèmes de formatage générés par un simple "ouvrez-le dans le bloc-notes". solution.

Si votre base d'utilisateurs est assez avertie mais n'est pas un développeur, la solution de texte en clair suffira peut-être. Comme mon collègue le dit souvent - pas besoin de mettre 100 $ dans un spectacle à 2 $. Évidemment, cela dépendra de votre situation particulière.

Vous pouvez utiliser YAML, mais les bibliothèques C # disponibles sont relativement immatures. YAML est un sous-ensemble de JSON, et vous pouvez également l'utiliser. Il contient une grande variété d'analyseurs disponibles, y compris celui-ci: http://www.codeplex.com/Json , qui prend en charge LINQ to JSon.

Habituellement, je lie la configuration à un contrôle de grille ou quoi que ce soit et je les laisse modifier la configuration dans l'application. Pas beaucoup d’interface utilisateur en jeu si vous conservez tout comme des paires nom / valeur.

L’API Win32 possède quelques fonctions pratiques qui peuvent être facilement appelées via P / Invoke:

Je ne recommande pas vraiment d’inviter / d’autoriser l’utilisateur à éditer les fichiers de configuration manuellement, car cela peut entraîner tellement de problèmes qui ne peuvent tout simplement pas être anticipés et évités. Je pense que le meilleur moyen de remédier à cette situation est de créer soit un éditeur de fichiers de configuration, soit simplement une interface de grille intégrée permettant de sauvegarder les paramètres. De cette façon, vous pouvez l’enregistrer dans n’importe quel format et éviter des difficultés inutiles.

En ce qui concerne l’enregistrement au format INI, vous pouvez utiliser, comme d’autres réponses suggérées, Nini ou < a href = "http://www.codeproject.com/KB/cs/cs_ini.aspx" rel = "nofollow noreferrer"> un wrapper pour les fonctions Windows INI natives dans Kernel32 . Toutefois, si vous utilisez l'approche de l'éditeur intégré, vous pouvez facilement utiliser XML à la place. Les fonctions XML intégrées de .NET Framework sont relativement simples à utiliser.

Bien que je sois fermement convaincu que permettre aux utilisateurs de modifier manuellement les fichiers de configuration est un non-non, dans certains cas, cela peut être la solution préférable, si le groupe d'utilisateurs est petit et que tout le monde sera formé à la modification. les fichiers. Si vous souhaitez adopter cette approche, je vous recommande les fichiers INI, car ils sont assez simples à modifier manuellement, à lire, à analyser et à écrire. Vous devriez essayer deux bibliothèques J'ai mentionné ci-dessus pour cela.

En résumé, je pense que vous devriez vraiment envisager une approche différente, en ne permettant pas à l'utilisateur de modifier les fichiers manuellement, mais en fournissant un éditeur intégré, mais bien sûr, si vous le souhaitez vraiment, peut prendre la route de l'édition manuelle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top