是否可以将web.config中的App设置传递给Common C#类

时间:2008-10-17 19:20:15

标签: c# asp.net web-config

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

3 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:8)

当然这是可能的 - 但要记住的是,正确设计的类(除非它是为ASP.NET明确设计的)不应该知道或关心信息来自何处。应该有一个属性(或方法,但属性是更多'做事的'.NET方式),你用应用程序本身的字符串值设置,而不是让类直接从web.config获取信息。

答案 2 :(得分:0)

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

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

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;   
       }
    }
}