3

是否可以将 web.config 中的 App 设置“字符串”传递给 Common C# 类?

4

3 回答 3

10

在任何类中,您都可以使用ConfigurationManager.AppSettings["KeyToSetting"]访问 web.config(或 app.config)元素中的任何值

于 2008-10-17T19:22:29.430 回答
8

当然这是可能的——但要记住的是,一个设计合理的类(除非它是为 ASP.NET 明确设计的)不应该知道或关心信息的来源。您应该使用应用程序本身的字符串值设置一个属性(或方法,但属性是更多的“.NET 方式”),而不是让类直接从 web.config 获取信息。

于 2008-10-17T19:23:18.583 回答
0

如果您有在许多地方使用的配置值,请考虑开发一个配置类来抽象配置项的实际加载并提供强类型值和转换,以及可能的默认值。

这种技术本地化了对配置文件的访问,使得以后切换实现变得容易(比如存储在注册表中),并使得只需从文件中读取一次值——尽管,我希望配置管理器是也以这种方式实现,并在第一次使用它时读取所有值,并在后续访问时从内部存储中提供它们。我认为,真正的好处是强类型和一次性转换。

public static class ApplicationConfiguration
{
    private static DateTime myEpoch;
    public static DateTime Epoch
    {
       get
       {
          if (myEpoch == null)
          {
              string startEpoch = ConfigurationManager.AppSettings["Epoch"];
              if (string.IsNullOrEmpty(startEpoch))
              {
                 myEpoch = new DateTime(1970,1,1);
              }
              else
              {
                 myEpoch = DateTime.Parse(startEpoch);
              }
          }
          return myEpoch;   
       }
    }
}
于 2008-10-17T19:50:42.710 回答