在Visual Studio 10(可能还有其他版本)中,可以使用设计器视图定义应用程序设置。这些设置似乎只是存储的公共变量。
有没有办法使用自定义枚举作为应用程序设置的类型?
我注意到您可以浏览枚举的引用,但似乎无法找到指定代码中包含的枚举的方法。
答案 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标记它。现在不在我的工作电脑上检查我的记忆。