在Web应用程序中包装应用程序设置

时间:2013-06-11 12:28:53

标签: .net configuration web-config

我在ASP.NET MVC 4项目的Web.Config中有这个应用程序设置。

  <appSettings>
        ...
    <add key="GridSize" value="12" />
  </appSettings>

我只在这样的地方使用它

int gridSize = int.Parse(ConfigurationManager.AppSettings["GridSize"]);

如果我想在我的代码中的更多地方使用它,推荐的方法是什么?

是否值得拥有一个包装器,所以整数解析只在一个地方完成?例如?

试着找一些关于这类事情的一般方法的例子。

由于

1 个答案:

答案 0 :(得分:1)

在给出答案之前,我想记住,使用app.config的推荐方法是通过applicationSettingsuserSettings部分。这些部分允许存储和检索配置属性,而不会将字符串转换为特定数据类型的问题 您的示例,如果存储在具有Seri​​alizeAs =“Integer”的applicationSettings中,则可以使用

回读GridSize配置
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;
          }
      }
}

这只是一个例子,需要更强大的代码来处理缺少密钥的情况,例如密钥的预期数据类型的无效值