Frage

Ich bin mit Windows Forms und VS2008. Ich möchte einen Enum-Wert speichern, in meiner Anwendung Einstellungsdatei.

Der Editor Einstellungen in VS2008 gibt mir nur eine begrenzte Anzahl an Typen. Erstaunlicherweise Aufzählungen scheinen nicht einen dieser Typen zu sein, die automatisch unterstützt werden - habe ich das richtig verstanden

Von zum Thema Lesen auf, wie es scheint, ich brauche vielleicht eine Typeconverter Klasse zu schreiben, meine Enum Zeichenfolge konvertiert zu ermöglichen und umgekehrt. Ich habe dies implementiert für meine Enum, und fügte hinzu, die Typeconverter-Eigenschaft auf meine Enum, das Konverter-Klasse, um anzuzeigen, für die ENUM zu nutzen.

Allerdings, wenn ich versuche, diese Datei in meinen Einstellungen angeben (in dem ‚Wählen Sie einen Typen‘) Dialog, sagt es nur, dass meine Art nicht definiert ist, so dass ich bin ein bisschen fest.

Kann jemand mir erklären, wie ich eine Enumeration in einer Einstellungsdatei speichern in eine Windows-Anwendung Forms? Es scheint wie eine solche crushingly einfach (und häufig erforderlich) Stück Funktionalität, die ich bin erstaunt es nicht bereits unterstützt wird, und dass ich scheine so viel Arbeit zu tun zu haben, um es zu Arbeit zu kommen (und nur für eine Enum!).

Deshalb denke ich, ich muss etwas fehlen, und es ist eigentlich einfach ...

Lassen Sie uns sagen, dass meine Enum wie folgt aussieht:

namespace MyApp
{
    enum MyEnum
    {
        Yes,
        No
    }
}

... Wie speichere ich einen Wert aus dieser Enum in meinen Einstellungen Datei? (Und abrufen es, natürlich).

(Natürlich kann ich nur speichern einen String oder Integer und interpretieren mich, aber das scheint ziemlich klobig, und ich würde erwarten, dass Windows Forms diese Art der Sache zu behandeln sauberer.)

War es hilfreich?

Lösung

Aufzählungen sind eigentlich nicht so weit von numerischen Typen (Standard int) entfernt und können synonym verwendet werden. Ich glaube nicht, es klobig ist hin und her und speichern Sie die int zu werfen. In der Tat kann nur Zeichenfolgen in der Einstellungsdatei gespeichert werden. Das bedeutet, durch Erweiterung, alles, was serialisierbar Zeichenfolge ist.

Eine andere Möglichkeit wäre es, den Textwert zu speichern (so ist es die menschliche editierbar) der Enumeration und analysieren es mit Enum.Parse (Typ, string).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top