C #: Kann ein Enum-Wert als Einstellung gespeichert werden?

8

Kann ein enum Wert als Einstellung gespeichert werden, indem die Properties.Settings.Default["MySetting"] Syntax von C # verwendet wird? Ich habe versucht, eine Einstellung in den Eigenschaftsseiten meines Projekts zu erstellen, aber nur Systemklassen sind in der Liste der verfügbaren Typen aufgeführt.

Wenn es gemacht werden kann, wie mache ich das? Vielen Dank im Voraus für Ihre Hilfe.

    
David Veeneman 25.08.2011, 22:05
quelle

2 Antworten

13

speichern Sie es einfach als int und konvertieren Sie es bei Bedarf.

%Vor%

Wenn Sie das Bedürfnis haben, können Sie Enum.IsDefined(typeof(MyEnum), value) verwenden, um sicherzustellen, dass es gültig ist. Sie können einen Zeichenfolgenwert auch so speichern, dass er in Ihrer Konfigurationsdatei in einem lesbaren Format vorliegt:

%Vor%     
Ed S. 25.08.2011, 22:11
quelle
0

So setze ich den Einstellungstyp auf MyEnum enum type:

  1. Erstellen Sie Ihre neue Eigenschafteneinstellung vom Typ string (der Typ string wird in den nächsten Schritten in MyEnum type geändert)

  2. Öffnen Sie Settings.Designer.cs

:

  1. Ändern Sie den Rückgabetyp Ihrer neuen Property von string in Ihren Enum-Typ MyEnum :

    Gegeben die Einstellung Enum Type hat den Namen MyEnum (in Company.Enums Namespace), bearbeiten Sie den Rückgabetyp vom Typ global::Company.Enums.MyEnum :

    %Vor%

So sieht es viel sauberer aus, mit nur einer Aussage; type safety ist auf der Client-Seite gewährleistet, ohne dass die unnötige Zeichenfolge zum Auflisten von Parsing benötigt wird.

%Vor%     
Pinte Dani 17.06.2015 13:51
quelle

Tags und Links