Windowsフォーム設定ファイルに列挙値を保存するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/312107

質問

Windows FormsとVS2008を使用しています。アプリケーションの設定ファイルに列挙値を保存したい。

VS2008の設定エディターは、限られたタイプのセットのみを提供します。驚くべきことに、enumは自動的にサポートされるこれらのタイプの1つではないようです-これを正しく理解しましたか?

件名を読むと、列挙型を文字列に、またはその逆に変換できるように、TypeConverterクラスを作成する必要があるようです。これを列挙型に実装し、列挙型に使用するコンバータークラスを示すために、TypeConverterプロパティを列挙型に追加しました。

ただし、設定ファイル(「タイプの選択」)ダイアログでこれを指定しようとすると、タイプが定義されていないというだけなので、ちょっと立ち往生しています。

Windows Formsアプリの設定ファイルに列挙型を保存する方法を説明できる人はいますか?非常にシンプルな(そして一般的に必要な)機能の一部であり、まだサポートされていないことに驚いています。そして、それを機能させるために非常に多くの作業をしなければならないようです(そして1つの列挙のみ!)

したがって、何かを見逃しているに違いないと思うが、実際には本当に簡単だ...

列挙型が次のようになっているとしましょう:

namespace MyApp
{
    enum MyEnum
    {
        Yes,
        No
    }
}

...この列挙型の値を設定ファイルに保存するにはどうすればよいですか? (もちろん、それを取得します)。

(明らかに、文字列または整数を保存して自分自身を解釈することができますが、それはかなり不格好なようで、Windows Formsがこの種のことをよりきれいに処理することを期待します。)

役に立ちましたか?

解決

実際には、列挙型は数値型(デフォルトのint)からそれほど遠くなく、互換的に使用できます。前後にキャストしてintを格納するのは不格好だとは思わない。実際、設定ファイルには文字列のみを保存できます。これは、拡張機能により、文字列にシリアル化できるものを意味します。

別の方法は、enumのテキスト値(したがって、人間が編集可能)を格納し、Enum.Parse(type、string)を使用して解析することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top