首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# App.config 讀取失敗:常見原因排查與 ConfigurationManager 正確用法

     編輯:程式設計綜合問答

問題現象

C# 專案中使用 ConfigurationManager 讀取 App.config 失敗,截圖顯示配置檔結構、讀取代碼與運行時異常/空值。

App.config 內容 讀取代碼 讀取失敗

最常見 5 大原因與解決

原因檢查點解決
1. 缺少引用專案 → 參考 → System.Configuration右鍵參考 → 加入參考 → 組件 → Framework → 勾選 System.Configuration
2. 命名空間using System.Configuration;頂部加入 using
3. 配置節點路徑錯誤appSettings vs connectionStrings vs 自定義 sectionConfigurationManager.AppSettings["key"] 只讀 <appSettings> 下的 <add key="" value="" />
4. 輸出目錄無配置檔bin/Debug/App.config → 實際為 專案名.exe.configApp.config 屬性 → 複製到輸出目錄 → 「如果較新則複製」
5. 專案類型不匹配Class Library / ASP.NET Core / .NET Core類庫無 App.config,需宿主專案 (exe/web) 提供;.NET Core 用 appsettings.json + IConfiguration

標準 App.config 結構




  
    
    
  
  
    
  

正確讀取代碼


using System.Configuration;

// 讀取 appSettings
string ip = ConfigurationManager.AppSettings["ServerIP"];  // 若 key 不存在回傳 null
int port = int.Parse(ConfigurationManager.AppSettings["Port"] ?? "8080");

// 讀取 connectionStrings
string connStr = ConfigurationManager.ConnectionStrings["MyDb"]?.ConnectionString;
string provider = ConfigurationManager.ConnectionStrings["MyDb"]?.ProviderName;

.NET Core / .NET 5+ 現代做法


// appsettings.json
{
  "ServerIP": "127.0.0.1",
  "Port": 8080,
  "ConnectionStrings": { "MyDb": "Server=...;Database=...;" }
}

// 程式碼
using Microsoft.Extensions.Configuration;

var config = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .Build();

string ip = config["ServerIP"];
int port = config.GetValue("Port");
string connStr = config.GetConnectionString("MyDb");

偵錯技巧

  1. 輸出 AppDomain.CurrentDomain.SetupInformation.ConfigurationFile 確認實際載入的 .config 路徑
  2. 檢查 bin/Debug/專案名.exe.config 內容是否與源碼一致
  3. 在讀取前加 ConfigurationManager.RefreshSection("appSettings") 強制重載

總結

App.config 讀取失敗 90% 是缺少 System.Configuration 引用、節點路徑錯誤、輸出目錄無配置檔。.NET Core 專案請改用 appsettings.json + IConfiguration,勿沿用 App.config 模式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved