自定义枚举作为C#中的应用程序设置类型?

时间:2010-02-02 13:09:11

标签: c# enums settings

如果在C#中有枚举:

[Serializable]
public enum OperatingSystem 
{
    Windows,
    Macintosh
}

对于我的应用程序,我使用应用程序设置,我可以在其中选择应该设置的类型。我想当我选择浏览时,我可以选择我的枚举或输入完全限定的路径来选择该枚举作为类型。

修改
我将类型设置为我的枚举,但在值(Windows,Macintosh应该是)中,只有Windows可见,我可以输入任何字符串。

6 个答案:

答案 0 :(得分:35)

我在VC#Express 2005中看到了这一点。“浏览...”“选择类型”对话框仅显示系统和Mi​​crosoft命名空间。但是,如果您将类型的全名插入“选定类型”文本框,则应接受该名称。

答案 1 :(得分:16)

以前所有答案的小补充。 至于我 - 在我的自定义枚举成功添加到“自定义类型”文本框之前,需要构建解决方案。

答案 2 :(得分:13)

当然 - 只需在项目中添加一个可序列化的枚举,选择浏览并输入命名空间限定名称,例如: ClassLibrary1.OperatingSystems。宾果

  

“我将类型设置为我的枚举,但是在   价值(Windows,Macintosh应该   be)只有Windows是可见的,我是   能够输入任何字符串“。

您是否尝试过输入“windows”或“macintosh”以外的内容?您看到的行为与您想要的行为一样接近。我对此很有信心。

无论如何......祝你好运。

在此处查看done in 30 seconds

答案 3 :(得分:0)

我不知道我是否理解你的问题,但是当我在我的应用程序配置文件中创建custom configuration section时,我使用TypeConverter attribute和{创建一个枚举属性{3}}

我希望它有所帮助,但如果我不正确地理解你的问题,请告诉我。

答案 4 :(得分:0)

别忘了添加对项目的引用,因为枚举应该(!)不在您的主项目中,它应该在其他地方(!)。 然后,在主项目的属性的“设置”选项卡中显示“字符串”的位置,您可以通过单击下拉框来选择另一个选项。从选项中选择“浏览”。您将看到一些通用的Microsoft选项,但是键入您的枚举名称,并以其命名空间(例如Common.MyEnum)作为前缀。 那应该可以解决问题。

答案 5 :(得分:0)

我知道这篇文章很旧,已被标记为已回答。但也许我可以为尝试上述解决方案的人节省一些时间。

我正在使用 VS2019 并且如 AlanNSky Sanders 所示,可以通过手动输入全名或选择来定义自定义类型它从列表中。后者仅在它在另一个引用程序集中定义时才有效(不要忘记预先构建它),这是一个已知的限制,如下所述:DocMicrosoft: Create Application Settings using the designer

我这样做的重点是给用户固定的选项,这样他就不必检查哪些字符串是允许的,哪些是不允许的。问题是选项不会始终显示。有时,在编译您的程序后,您将不再看到选项;他们走了。有时,在重新启动 Visual Studio 后,它们又回来了。 Sean 在另一个 stackoverflow 帖子 here 中已经说明了这个问题。