单独文件中的全局常量。这是个好主意吗?
我目前正在开发 ASP.NET MVC 应用程序。我计划创建一个静态类,在其中保存所有全局字符串常量,例如会话名称。
我犹豫的原因是因为它有点气味,但我不知道有更好的选择。
请告诉我如何定义全局常量。
I'm currently working on ASP.NET MVC application. I'm planning to create a static class where I plan to hold all the global string constants like session names.
The reason I'm hesitant is because it's kind of smell but I'm not aware of better alternative.
Please show me the light how to define global constants.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
vadim,
我完全按照您的建议进行操作,并为此目的使用静态类。然后,您将获得强类型访问器的优势以及添加覆盖(以方法的形式)的能力(如果您需要的话)。
这是一个片段:
典型用法:
在上面的类中,某些设置在 web.config 中的应用程序设置中被称为“第二代”,但在类中具有强类型以确保运行时错误检查等。其他设置是纯粹定义的静态设置在课堂上。
在我看来,执行上述所有操作的灵活性使这种方法既有吸引力又具有真正的优势。
vadim,
i do exactly as you propose and use a static class for this purpose. You then get the advantage of strongly typed accessors PLUS the ability to add overrides (in the form of methods), should you require them.
here's a snippet:
typical usage:
in the above class, some settings are called '2nd generation' from the app settings in the web.config but with strong typing in the classes to ensure runtime error checking etc.. others are purely static settings defined in the class.
it's the flexibility to do all of the above that (in my opinion) gives this approach both appeal and a real strength.
另一种选择是创建资源 (.resx) 文件。或者,如果这些是可配置值,则它们可以放入 web.config 或数据库配置表中。
Another alternative would be to create a resources (.resx) file. Or if these are configurable values, they can go in web.config or a database configuration table.
无论是 MVC 还是 Web 表单,我都使用数据库条目(用于可以通过仪表板修改的站点设置)和 web.config appSettings(用于不经常更改或根本不更改的站点设置,即常量)的组合。
Whether it is MVC or Web forms, I use a combination of database entries (for site settings that can be modified by dashboard) and web.config appSettings (for site settings that do not change often or at all, i.e. constant).
您可以使用 global.asax 文件来实现此目的 - 我会使用它们的访问器,例如
You can use global.asax file for this purpose - I would use accessors for them e.g.