【发布时间】:2011-03-08 22:28:17
【问题描述】:
在 Visual Studio 10(可能还有其他版本)中,可以使用设计器视图定义应用程序设置。这些设置似乎只是存储的公共变量。
有没有办法使用自定义枚举作为应用程序设置的类型?
我注意到您可以浏览枚举的引用,但似乎找不到在我的代码中指定枚举的方法。
【问题讨论】:
标签: c# visual-studio-2010 enums settings
在 Visual Studio 10(可能还有其他版本)中,可以使用设计器视图定义应用程序设置。这些设置似乎只是存储的公共变量。
有没有办法使用自定义枚举作为应用程序设置的类型?
我注意到您可以浏览枚举的引用,但似乎找不到在我的代码中指定枚举的方法。
【问题讨论】:
标签: c# visual-studio-2010 enums settings
IIRC 您可以在应用程序设置中存储自定义数据类型,但该类型需要是 XML 可序列化的,或者具有实现 tostring/fromstring 方法的类型转换器。对于枚举类型,我认为你只需要用 SerializableAttribute 标记它。现在不在我的工作电脑前检查我的记忆。
【讨论】:
简短的版本是:
您可以创建自己的 ConfigurationSection 和 ConfigurationSectionGroup(首先参考 System.Configuration)。然后,您在 web.config 中定义 a 以支持您的自定义部分。
如果您想要智能感知,您需要修改 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
【讨论】: