2008-11-23 4 views
2

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

L'éditeur de paramètres dans VS2008 ne me donne qu'un ensemble limité de types. Étonnamment, les enums ne semblent pas être un de ces types qui sont automatiquement supportés - ai-je bien compris? A la lecture du sujet, il me semble que je devrais écrire une classe TypeConverter, pour que mon énumération soit convertie en chaîne et vice versa. J'ai implémenté ceci pour mon énumération et ajouté la propriété TypeConverter à mon énumération pour indiquer quelle classe de convertisseur utiliser pour cette énumération.

Cependant, lorsque j'essaie de le spécifier dans mon fichier de paramètres (dans la boîte de dialogue 'Select a Type'), il est simplement indiqué que mon type n'est pas défini, donc je suis bloqué.

Quelqu'un peut-il m'expliquer comment je stocke une énumération dans un fichier de paramètres dans une application Windows Forms? Cela semble être une fonctionnalité si simple (et communément nécessaire) que je suis étonné que ce ne soit pas déjà supporté, et que je semble devoir faire tellement de travail pour le faire fonctionner (et pour une seule énumération!).

donc je pense que je dois manquer quelque chose, et il est en fait très facile ...

Disons que mon ENUM ressemble à ceci:

namespace MyApp 
{ 
    enum MyEnum 
    { 
     Yes, 
     No 
    } 
} 

... Comment stocker une valeur de cette énumération dans mon fichier de paramètres? (Et récupérez-le, bien sûr).

(Il est évident que je peux stocker une chaîne ou un entier et moi-même interprète, mais cela semble assez maladroit, et je pense Windows Forms pour gérer ce genre de chose plus propre.)

Répondre

3

énumérations sont en fait pas loin des types numériques (default int) et peut être utilisé 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 façon serait de stocker la valeur du texte (donc c'est humain modifiable) de l'enum et l'analyser en utilisant Enum.Parse (type, string).

+0

Je préfère la valeur de texte sur l'entier. Il est vrai que seules les chaînes peuvent être stockées dans le fichier de paramètres, mais tout ce qui est sérialisable peut y être stocké. –

+0

Je suppose que c'est aussi bon qu'avec Windows Forms - Je pense toujours qu'il est maladroit que je doive gérer enums moi-même, mais merci pour le Enum.Parse() - avec cela et Enum.Format() je peux le faire directement avec la chaîne de paramètres assez simplement. – Slacker

+0

Vous n'avez même pas besoin de Enum.Format. Vous pouvez juste ToString la valeur. –

Questions connexes