我想在应用程序级别拥有一些常量,例如存储过程名称,用户消息和其他常量。我将永远改变这些资源的可能性很小。
请告诉我在我们的申请中保留常数的良好做法。
资源字典是否优于.cs文件。
此致 AA
答案 0 :(得分:3)
对于初学者来说,你正在考虑这些东西。由于很多原因,魔法弦和其他魔法值都很糟糕。
以下是我们使用的一些指南:
根据需要,我们通常每个程序集有三个文件: 首先,一个常量文件。这通常和Constants.cs一样简单。在此文件中放置常量(AND readonly静态不是编译时常量且永不更改)。您还可以包含可配置但必须具有默认值的内容。
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"];
}
}
}
最后,一个或多个资源文件。这是我们放置图标,图像,不寻常字体,本地化(或只是可变)字符串等用于显示目的的地方......
没有特定的正确方法可以做这些事情,但我认为上面的内容会给你一个开始的地方。