2

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

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

我只在这样的一个地方使用它

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

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

是否值得为此使用包装器,以便整数解析仅在一个地方完成?

只是试图获得一些例子来说明这种事情的一般方法是什么。

谢谢

4

1 回答 1

1

在给出我的答案之前,我希望记住使用 app.config 的推荐方法是通过applicationSettingsanduserSettings部分。这些部分允许存储和检索配置属性,而不会出现将字符串转换为特定数据类型的问题。
您的示例,如果使用 SerializeAs="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;
          }
      }
}

这只是一个例子,需要更健壮的代码来处理缺少键的情况,键的预期数据类型无效值

于 2013-06-11T14:18:00.420 回答