【问题标题】:Is it possible to use custom enums in application settings? (VS10)是否可以在应用程序设置中使用自定义枚举? (VS10)
【发布时间】:2011-03-08 22:28:17
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      简短的版本是:

      您可以创建自己的 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-12
        • 2013-11-10
        • 2011-02-12
        • 1970-01-01
        • 2016-08-31
        • 1970-01-01
        • 1970-01-01
        • 2013-05-18
        相关资源
        最近更新 更多