是否可以在应用程序设置中使用自定义枚举? (VS10)

时间:2010-06-27 22:55:20

标签: c# visual-studio-2010 enums settings

在Visual Studio 10(可能还有其他版本)中,可以使用设计器视图定义应用程序设置。这些设置似乎只是存储的公共变量。

有没有办法使用自定义枚举作为应用程序设置的类型?

我注意到您可以浏览枚举的引用,但似乎无法找到指定代码中包含的枚举的方法。

2 个答案:

答案 0 :(得分:6)

简短版本是:

您可以创建自己的ConfigurationSection和ConfigurationSectionGroup(首先参考System.Configuration)。然后,在web.config中定义a以支持自定义部分。

如果你想要intellisense,你需要修改C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Xml \ Schemas \ DotNetConfig.xsd以包含新部分的细节。

例如,假设您希望配置如下所示:

<tomWright.Framework>
    <settings awesomeness="High" coolness="Medium"/> 
</tomWright.Framework>

您将创建一个名为TomWrightFrameworkConfigurationSectionGroup(继承自ConfigurationSectionGroup)的ConfigurationSectionGroup,并使其具有一个名为Settings的属性,该属性指向另一个类SettingsConfigurationSection(继承自ConfigurationSection)。 MSDN上有一些关于如何执行此操作的示例。

这是一个学习曲线,但是当你想从简单的appSettings跳到自定义配置时 - 实际上只有一种方法可以实现,而且它并不是特别直观。如果您有任何问题,请告诉我,我以前做过这个问题。希望有所帮助... -Rob

答案 1 :(得分:0)

IIRC您可以在应用程序设置中存储自定义数据类型,但类型需要是XML可序列化的,或者具有实现tostring / fromstring方法的类型转换器。对于枚举类型,我认为您只需要使用SerializableAttribute标记它。现在不在我的工作电脑上检查我的记忆。