【问题标题】:How to store and retrieve constants that are not configurable in ASP.NET?如何存储和检索在 ASP.NET 中不可配置的常量?
【发布时间】:2009-08-21 15:16:39
【问题描述】:

类在不通过 web.config 获取常量的情况下检索/存储常量的最佳方式是什么?

【问题讨论】:

    标签: c# asp.net constants


    【解决方案1】:

    将它们作为静态存储在一个类中,如下所示:

    public static class DbConstants
    {
        public static const string CustomersTableName = "CUST";
        public static const string ProductsTableName = "PROD";
        ...
    }
    

    考虑将它们分成几个类以在逻辑上对它们进行分组,例如一类用于 DB 常量,一类用于异常消息等。

    【讨论】:

    【解决方案2】:

    您包含一个包含所有常量的静态类。

    public static class MyConstants
    {
        public const string MyString = "ConstString";
        public const int TestInt = 100;
        // etc...
    }
    

    【讨论】:

    • 我不应该把成员变量中的所有字母都大写吗?
    • 我发现 LOOK_AT_ME_IM_A_CONSTANT_OOOH 特别烦人。也许你可以把它写成 constantNameOfConstant 或类似的东西。
    【解决方案3】:

    这取决于它们的“恒定”程度。 如果它们真的是常量,那就是永远不会改变的东西,那么就是一个包含常量的静态类。例如。数字 PI,或者可能是包含表中字段名称的常量。

    如果它们更特定于服务器,例如连接字符串,并且您不想使用 web.config,则可能需要检查从 web.config 包含新配置文件的选项

    <appSettings file="local.config">...</appSettings>
    

    local.config 应该只包含一个 appSettings 元素。如果 local.config 文件不存在,它将被忽略。所以没有例外。 local.config 和 web.config 中存在的任何设置,都将使用 local.config。然后,您可以在多个安装之间共享一个 Web 配置文件,并在 local.config 中覆盖本地设置。

    如果常量更多的是超级用户应该能够在运行时修改的东西,那么我会选择数据库中的表。例如。 a 如果您让超级用户修改最大密码重试次数或其他内容。

    【讨论】:

      【解决方案4】:

      XML 文件并使用应用程序缓存来提高性能,或者您可以使用 ASP.NET 配置文件。

      【讨论】:

      • 使用 XML 文件不等同于使用 XML 文件的 web.config 吗?
      • Kelsey:我认为实际上会更糟,因为您必须自己解析 Xml。使用 .config 文件,您可以避免使用 .Net 提供的节系统。
      • 当然。但取决于您要存储的数据结构,它值得。
      猜你喜欢
      • 2012-08-24
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      相关资源
      最近更新 更多