65 votes

.NET peut-il charger et analyser un fichier de propriétés équivalent à la classe Java Properties ?

Existe-t-il un moyen simple en C# de lire un fichier de propriétés dont chaque propriété se trouve sur une ligne distincte, suivie d'un signe égal et de la valeur, comme dans le cas suivant :

ServerName=prod-srv1
Port=8888
CustomProperty=Any value

En Java, la classe Propriétés gère facilement cette analyse syntaxique :

Properties myProperties=new Properties();
FileInputStream fis = new FileInputStream (new File("CustomProps.properties"));
myProperties.load(fis);
System.out.println(myProperties.getProperty("ServerName"));
System.out.println(myProperties.getProperty("CustomProperty"));

Je peux facilement charger le fichier en C# et analyser chaque ligne, mais existe-t-il un moyen intégré d'obtenir facilement une propriété sans avoir à analyser moi-même le nom de la clé et le signe égal ? Les informations C# que j'ai trouvées semblent toujours privilégier le XML, mais il s'agit d'un fichier existant que je ne contrôle pas et je préférerais le conserver dans le format existant, car il sera plus long de demander à une autre équipe de le modifier en XML que d'analyser le fichier existant.

0voto

Steve Eisner Points 1544

Je réalise que ce n'est pas exactement ce que vous demandez, mais juste au cas où :

Lorsque vous voulez charger un réel Java, vous devrez tenir compte de son encodage. La documentation Java indiquent que le codage est ISO 8859-1, qui contient certaines séquences d'échappement que vous pourriez ne pas interpréter correctement. Par exemple, regardez cette réponse SO pour voir ce qui est nécessaire pour transformer UTF-8 en ISO 8859-1 (et vice versa)

Lorsque nous avons eu besoin de faire cela, nous avons trouvé un logiciel libre PropertyFile.cs et a fait quelques changements pour supporter les séquences d'échappement. Cette classe est une bonne classe pour les scénarios de lecture/écriture. Vous aurez besoin du support PropertyFileIterator.cs également.

Même si vous ne chargez pas de véritables propriétés Java, assurez-vous que votre fichier prop peut exprimer tous les caractères que vous devez sauvegarder (UTF-8 au moins).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X