C#-讀取config配置


app.config文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <!--上次成功運行的時間,yyyy-MM-dd hh:mm:ss, 2021-10-25 01:01:01-->
    <add key="LastRunTime" value="2021-10-25 01:01:01" />
    <!--日志文件保存地址,D:\\Log\\-->
    <add key="LogFile" value="D:\\Log\\" />
  </appSettings>
</configuration>

 方法一(讀取exe的共同app.config文件,沒試過能不能讀取本程序集的):

string dllAdress = logAdress =  ConfigurationSettings.AppSettings["keyname"].Trim();

 方法二(讀取本程序集的app.config):

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.Reflection;
 7 using System.IO;
 8 using System.Configuration;
 9 
10 namespace SendDataZCCA.Common
11 {
12     // 程序集config文件的讀取與修改
13     public class AppConfigTools
14     {
15         /// <summary>
16         /// 讀取本程序集配置config的方法2
17         /// 方法一為:string dllAdress = logAdress =  ConfigurationSettings.AppSettings["LogFile"].Trim();
18         /// </summary>
19         /// <returns></returns>
20         public static Configuration GetConfig()
21         {
22             Assembly assembly = Assembly.GetCallingAssembly();
23             string path = string.Format("{0}.config", assembly.Location);
24             if (!File.Exists(path))
25             {
26                 throw new FileNotFoundException(path + "路徑下的文件未找到!");
27             }
28             try
29             {
30                 ExeConfigurationFileMap configFile = new ExeConfigurationFileMap();
31                 configFile.ExeConfigFilename = path;
32                 Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFile, ConfigurationUserLevel.None);
33                 return config;
34             }
35             catch (Exception)
36             {
37                 throw;
38             }
39         }
40 
41         /// <summary>
42         /// 擴展1-configuration.appSettings.app格式轉Dictionary格式
43         /// </summary>
44         /// <returns></returns>
45         public static Dictionary<string, string> GetConfigString()
46         {
47             try
48             {
49                 Dictionary<string, string> dictionary = new Dictionary<string, string>();
50                 Configuration config = GetConfig();
51                 var settings = config.AppSettings.Settings;
52                 foreach (var key in settings.AllKeys)
53                 {
54                     string value = settings[key].Value.ToString();
55                     dictionary.Add(key.ToString(), value);
56                 }
57                 return dictionary;
58             }
59             catch (Exception)
60             {
61                 throw;
62             }
63         }
64 
65 
66         /// <summary>
67         /// 增刪改例子
68         /// </summary>
69         /// <param name="configName">config文件名</param>
70         /// <param name="key">key</param>
71         /// <param name="value"></param>
72         public void ModConfig(string configName, string key, string value)
73         {
74             string configPath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase.ToString() + "\\" + configName;
75             ExeConfigurationFileMap ecf = new ExeConfigurationFileMap();
76             ecf.ExeConfigFilename = configPath;
77             Configuration config = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(ecf, ConfigurationUserLevel.None);
78 
79             config.AppSettings.Settings.Add("VersionType", "V1.5.0.8");  //
80             config.AppSettings.Settings[key].Value = value;              // 修改
81             config.AppSettings.Settings.Remove("VersionType");           // 刪除
82             config.Save(ConfigurationSaveMode.Modified);                 // 保存文件
83 
84             ConfigurationManager.RefreshSection("appSettings");          // 重新載入使文件生效
85         }
86     }
87 }

 

補充:C#讀取Web.config的不同類型的值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM