2

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

VS2008 の設定エディターでは、限られた種類のセットしか表示されません。驚くべきことに、列挙型は自動的にサポートされるこれらの型の 1 つではないようです。これは正しく理解できましたか?

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

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

Windowsフォームアプリの設定ファイルに列挙型を保存する方法を誰かに説明してもらえますか? 非常にシンプルな (そして一般的に必要とされる) 機能のように思えますが、まだサポートされていないことに驚いています。

したがって、私は何かが欠けているに違いないと思います、そしてそれは実際には本当に簡単です...

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

namespace MyApp
{
    enum MyEnum
    {
        Yes,
        No
    }
}

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

(明らかに、文字列または整数を格納して自分自身を解釈することはできますが、それはかなり不格好に思えます。Windows フォームがこの種のものをよりきれいに処理することを期待しています。)

4

1 に答える 1

3

列挙型は、実際には数値型 (デフォルトの int) からそれほど離れておらず、交換可能に使用できます。前後にキャストしてintを保存するのは面倒だとは思いません。実際には、設定ファイルに格納できるのは文字列だけです。これは、ひいては、文字列にシリアル化できるものすべてを意味します。

別の方法は、列挙型のテキスト値を保存し (人間が編集できるようにする)、Enum.Parse(type, string) を使用して解析することです。

于 2008-11-23T04:42:19.110 に答える