我有一些我想在应用程序级别拥有的常量,例如存储过程名称、用户消息等。我改变这些资源的可能性很小。
请让我知道在我们的应用程序中保持常量的好习惯。
资源字典是否优于 .cs 文件。
问候机管局
我有一些我想在应用程序级别拥有的常量,例如存储过程名称、用户消息等。我改变这些资源的可能性很小。
请让我知道在我们的应用程序中保持常量的好习惯。
资源字典是否优于 .cs 文件。
问候机管局
对于初学者来说,你在思考这些东西时走在了正确的轨道上。魔术字符串和其他魔术值之所以不好,有很多原因。
以下是我们使用的一些准则:
我们通常每个程序集有三个文件,根据需要:首先,一个常量文件。这通常和 Constants.cs 一样简单。将您的常量(以及非编译时常量且永不更改的只读静态变量)放入此文件中。您还可以包含可配置但必须具有默认值的内容。
internal class Constants
{
public const LogLevel DEFAULT_LOG_LEVEL = LogLevel.Error;
public static readonly string APP_NAME = Configuration.ApplicationName ?? "Test Application";
}
其次,一个读取配置值并将它们作为静态值返回的文件。这通常是 Configuration.cs,负责返回所有配置值。这使您不必重新编译以更改连接字符串、处理设置或其他内容。实际值位于 .ini 文件、web.config 或 app.config、数据库表或源代码之外的其他位置等位置。如果在下面的示例中,您可以在整个代码中使用 ConfigurationManager.AppSettings["ApplicationName"],但是如果您想更改该 appsetting 的键怎么办?你必须找到一个重命名它的所有引用。只需要额外的 30 秒来做这样的事情,以及所有的 Configuration.ApplicationName。
internal class Configuration
{
public static string ApplicationName
{
get
{
return ConfigurationManager.AppSettings["ApplicationName"];
}
}
}
最后,一个或多个资源文件。这是我们放置图标、图像、不寻常字体、本地化(或只是可更改)字符串等用于显示目的的地方......
没有特定的正确方法来做这些事情,但我认为以上内容将为您提供一个起点。