我在ASP.NET MVC 4项目的Web.Config中有这个应用程序设置。
<appSettings>
...
<add key="GridSize" value="12" />
</appSettings>
我只在这样的地方使用它
int gridSize = int.Parse(ConfigurationManager.AppSettings["GridSize"]);
如果我想在我的代码中的更多地方使用它,推荐的方法是什么?
是否值得拥有一个包装器,所以整数解析只在一个地方完成?例如?
试着找一些关于这类事情的一般方法的例子。
由于
答案 0 :(得分:1)
在给出答案之前,我想记住,使用app.config的推荐方法是通过applicationSettings
和userSettings
部分。这些部分允许存储和检索配置属性,而不会将字符串转换为特定数据类型的问题
您的示例,如果存储在具有SerializeAs =“Integer”的applicationSettings中,则可以使用
int size = Properties.Settings.Default.GridSize; //no conversion needed here
但是,如果您仍想使用过时的 appSettings
部分,那么我建议您创建一个静态ConfigurationUtility类,其中包含您的配置值以及您可以集中处理的位置这些值(包括保存和加载操作)
public static class ConfigurationUtility
{
private static int _gridSize = -1; // default for not initialized
public static int GridSize
{
get
{
if(_gridSize == -1)
_gridSize = Int.Parse(ConfigurationManager.AppSettings["GridSize"])
return _gridSize;
}
}
}
这只是一个例子,需要更强大的代码来处理缺少密钥的情况,例如密钥的预期数据类型的无效值