【发布时间】:2009-08-21 15:16:39
【问题描述】:
类在不通过 web.config 获取常量的情况下检索/存储常量的最佳方式是什么?
【问题讨论】:
类在不通过 web.config 获取常量的情况下检索/存储常量的最佳方式是什么?
【问题讨论】:
将它们作为静态存储在一个类中,如下所示:
public static class DbConstants
{
public static const string CustomersTableName = "CUST";
public static const string ProductsTableName = "PROD";
...
}
考虑将它们分成几个类以在逻辑上对它们进行分组,例如一类用于 DB 常量,一类用于异常消息等。
【讨论】:
您包含一个包含所有常量的静态类。
public static class MyConstants
{
public const string MyString = "ConstString";
public const int TestInt = 100;
// etc...
}
【讨论】:
这取决于它们的“恒定”程度。 如果它们真的是常量,那就是永远不会改变的东西,那么就是一个包含常量的静态类。例如。数字 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 如果您让超级用户修改最大密码重试次数或其他内容。
【讨论】:
XML 文件并使用应用程序缓存来提高性能,或者您可以使用 ASP.NET 配置文件。
【讨论】: