如果在C#中有枚举:
[Serializable]
public enum OperatingSystem
{
Windows,
Macintosh
}
对于我的应用程序,我使用应用程序设置,我可以在其中选择应该设置的类型。我想当我选择浏览时,我可以选择我的枚举或输入完全限定的路径来选择该枚举作为类型。
修改
我将类型设置为我的枚举,但在值(Windows,Macintosh应该是)中,只有Windows可见,我可以输入任何字符串。
答案 0 :(得分:35)
我在VC#Express 2005中看到了这一点。“浏览...”“选择类型”对话框仅显示系统和Microsoft命名空间。但是,如果您将类型的全名插入“选定类型”文本框,则应接受该名称。
答案 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 并且如 AlanN 和 Sky Sanders 所示,可以通过手动输入全名或选择来定义自定义类型它从列表中。后者仅在它在另一个引用程序集中定义时才有效(不要忘记预先构建它),这是一个已知的限制,如下所述:DocMicrosoft: Create Application Settings using the designer。
我这样做的重点是给用户固定的选项,这样他就不必检查哪些字符串是允许的,哪些是不允许的。问题是选项不会始终显示。有时,在编译您的程序后,您将不再看到选项;他们走了。有时,在重新启动 Visual Studio 后,它们又回来了。 Sean 在另一个 stackoverflow 帖子 here 中已经说明了这个问题。