我目前正在研究ASP.NET MVC应用程序。我打算创建一个静态类,我计划保存所有全局字符串常量,如会话名称。
我犹豫不决的原因是因为它有点嗅觉,但我不知道有更好的选择。
请告诉我如何定义全局常量。
答案 0 :(得分:4)
瓦迪姆,
我完全按照您的建议行事,并为此目的使用静态类。然后,您可以获得强类型访问器的优势,并且可以根据需要添加覆盖(以方法的形式)。
这是一个片段:
public static class Config
{
private const string NotSet = "**VALUE NOT SET**";
private const int pageSize = 5;
public static string CustomCache
{
get
{
return ConfigurationManager.AppSettings["CustomCache"] ?? NotSet;
}
}
public static int PageSize
{
get
{
// simple default - no setter
return pageSize;
}
}
}
典型用法:
items = _repository.GetPaged(pageNumber, Config.PageSize)
在上面的类中,一些设置从web.config中的应用程序设置称为“第二代”,但在类中强类型以确保运行时错误检查等。其他设置是在类中定义的纯静态设置。
可以灵活地完成上述所有操作(在我看来),这种方法既具有吸引力,又具有真正的实力。
答案 1 :(得分:1)
另一种方法是创建资源(.resx)文件。或者,如果这些是可配置的值,则可以使用web.config或数据库配置表。
答案 2 :(得分:0)
您可以将global.asax文件用于此目的 - 我会为它们使用访问器,例如
private static int var ;
public static int VAR
{
get { return var ; }
}
答案 3 :(得分:0)
无论是MVC还是Web表单,我都使用数据库条目(可用于仪表板修改的站点设置)和web.config appSettings(用于不经常更改或根本不更改的站点设置,即常量)的组合