2008-10-17 21 views

回答

8

當然,這是可能的元素來訪問任何價值的類 - 但要記住的一點是,正確設計類(除非它明確爲ASP.NET設計)不應該知道或關心信息的來源。應該有一個屬性(或方法,但是屬性是處理更多的'.NET方式'),而不是讓該類直接從web.config中獲取信息。

+0

很好的答案!希望我還沒有用完今天的選票。屬性絕對是正確做到這一點的方法。 – DOK 2008-10-17 20:01:57

10

在你可以使用ConfigurationManager.AppSettings["KeyToSetting"]在web.config中(或app.config)中

+0

這樣的作品,但並不總是很好的設計。見Harper Shelby的回答及其評論。 – Raelshark 2008-10-17 20:26:01

0

如果您有在許多地方使用的配置值,請考慮開發一個Configuration類,該類可以抽象配置項的實際加載並提供強類型值和轉換以及潛在的默認值。

此技術本地化配置文件的訪問權限,以便稍後切換實現(例如,在註冊表中存儲),並使其值只能從文件中讀取一次 - 儘管如此,我希望配置管理器也將以這種方式實現,並在首次使用它時讀取所有值,並在隨後的訪問中從內部存儲提供它們。我認爲,真正的好處是打字強度和一次轉換。

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; 
     } 
    } 
} 
相關問題