Question

J'utilise Windows Forms et VS2008. Je souhaite stocker une valeur enum dans le fichier de paramètres de mon application.

L'éditeur de paramètres de VS2008 ne me fournit qu'un nombre limité de types. Étonnamment, les enums ne semblent pas faire partie de ces types qui sont automatiquement pris en charge - l’ai-je bien compris?

D'après ce que j'ai lu sur le sujet, il me faudrait peut-être écrire une classe TypeConverter pour permettre à mon enum d'être converti en chaîne et vice versa. J'ai implémenté cela pour mon enum et ajouté la propriété TypeConverter à mon enum, pour indiquer la classe de convertisseur à utiliser pour cet enum.

Cependant, lorsque j'essaie de spécifier cela dans mon fichier de paramètres (dans la boîte de dialogue "Sélectionner un type"), il indique simplement que mon type n'est pas défini, donc je suis un peu coincé.

Quelqu'un peut-il m'expliquer comment je stocke une enum dans un fichier de paramètres dans une application Windows Forms? Il semble que la fonctionnalité soit tellement simple (et généralement requise) que je suis étonné de constater qu’elle n’est pas encore prise en charge et que je semble devoir faire beaucoup de travail pour la faire fonctionner (et pour une seule énumération!).

Par conséquent, je pense que je dois manquer quelque chose, et c'est vraiment très facile ...

Disons que mon enum ressemble à ceci:

namespace MyApp
{
    enum MyEnum
    {
        Yes,
        No
    }
}

... comment enregistrer une valeur de cette énumération dans mon fichier de paramètres? (Et le récupérer, bien sûr).

(Évidemment, je ne peux que stocker une chaîne ou un entier et m'interpréter moi-même, mais cela semble assez maladroit et je m'attendrais à ce que Windows Forms gère ce genre de choses de manière plus propre.)

Était-ce utile?

La solution

Les énumérations ne sont en réalité pas si éloignées des types numériques (int par défaut) et peuvent être utilisées de manière interchangeable. Je ne pense pas qu'il soit maladroit de faire des allers-retours et de stocker l'int. En fait, seules les chaînes peuvent être stockées dans le fichier de paramètres. Cela signifie, par extension, tout ce qui est sérialisable en chaîne.

Une autre solution consisterait à stocker la valeur textuelle (donc modifiable à la main) de l’énum et à l’analyser à l’aide de Enum.Parse (type, chaîne).

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