zoukankan      html  css  js  c++  java
  • 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 }
    365个夜晚,我希望做到两天更一篇博客。加油,小白!
  • 相关阅读:
    Linux下软件安装,卸载,管理
    Android ROM 备书
    Chrome 和 Webkit 的渊源
    【转】The Attached Behavior Pattern
    WPF透明窗体不支持缩放解决方案
    在项目的点点滴滴
    WPF里面多线程访问UI线程、主线程的控件
    设计模式:单例模式
    设计模式:中介者模式
    WPF:MVVM模式下ViewModel关闭View
  • 原文地址:https://www.cnblogs.com/qq2806933146xiaobai/p/15503336.html
Copyright © 2011-2022 走看看