2

我正在使用 Windows 窗体和 VS2008。我想在我的应用程序的设置文件中存储一个枚举值。

VS2008 中的设置编辑器只给了我一组有限的类型。令人惊讶的是,枚举似乎不是自动支持的这些类型之一 - 我是否正确理解这一点?

通过阅读该主题,似乎我可能需要编写一个 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 回答