Dot-Net-3.5

.Net 的 AppSettingsReader 與 ConfigurationManager 在讀取應用程序配置設置方面的優勢

  • May 7, 2012

AppSettingsReader 類和 .Net 3.5 中 ConfigurationManager 類的 AppSettings 成員之間是否存在實質性區別?

我正在建構一些遺留程式碼,以前的開發人員使用 AppSettingsReader.GetValue(),而我更傾向於使用 ConfigurationManager.AppSettings.Get()。

從內部看,AppSettingReader 似乎更加類型安全,但它的使用似乎更加冗長。如果我正在檢索的應用程序設置是眾所周知的並且相當靜態,那麼使用 AppSettingsReader 有什麼好處嗎?

並不真地。AppSettingsReader 在內部只使用了 ConfigurationManager.AppSettings。

基本上只是檢查它是否存在,檢查發生的事情是否正常等。

有一件事是,當 AppSettings 中沒有元素時,它會拋出異常。

   // From CTOR
   this.map = ConfigurationManager.AppSettings;

   ....
   public object GetValue(string key, Type type)

      ...

      string item = this.map[key];
      if (item == null)
      {
          throw new InvalidOperationException(SR.GetString("AppSettingsReaderNoKey", new object[] { key }));
      }

我認為大多數人只會使用 ConfigurationManager,但真正的答案是“讓你的船漂浮”。

引用自:https://stackoverflow.com/questions/3497768