C# app.config的配置方法及使用技巧

1.app.config配置文件

应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的。
也是可以按需要更改的,对于一些在程序中需要使用的链接,地址,等常量,开发人员可以使用配置文件来设置,后期只用更改配置文件中的配置,而不必重编译应用程序。
配置文件的根节点是configuration。我们经常访问的是appSettings,它是由.Net预定义配置节,“配置节”可以理解为进行配置一个XML的节点。

我们在VS中创建一个新的桌面应用程序之后,在我们对应的解决方案视图会自动 生成一个名app.config 的配置文件,如果是web应用程序则会对应生成一个web.config的配置文件,为应用程序提供相应的配置。
C# app.config的配置方法及使用技巧_第1张图片
当前app.config中为以xml文件,根节点为 configuration,内容如下所示



     
        
    

2. appSettings的读写操作

.NET 提供了对appSettings节的访问方法。

在使用ConfigurationManager 之前我们需要引用命名空间

C# app.config的配置方法及使用技巧_第2张图片

 public class AppConfigAccess
    {
        private static Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        
        
        /// 
        /// 获取指定节点的值
        /// 
        /// 
        /// 
        public static string GetAppSetting(string key)
        {
            if (ConfigurationManager.AppSettings.AllKeys.Contains(key))
            {
                string value = config.AppSettings.Settings[key].Value;
                return value;
            }
            else
            {
                return null;
            }
        }
        
        /// 
        /// 增加一个appsetting节点
        /// 
        /// 
        /// 
        public static void AddAppSetting(string key, string value)
        {
            if (!ConfigurationManager.AppSettings.AllKeys.Contains(key))
            {
                //如果不 存在就增加一个节点
                config.AppSettings.Settings.Add(key, value);
                config.Save(ConfigurationSaveMode.Modified);
            }
            else
            {
                Console.WriteLine("当前节点已存在");
            }
        }
        /// 
        /// 更新appsetting节点
        /// 
        /// 
        /// 
        public static void UpdateAppSettings(string key, string value)
        {
            if (ConfigurationManager.AppSettings.AllKeys.Contains(key))
            {
                //如果当前节点存在,则更新当前节点
                config.AppSettings.Settings[key].Value = value;
                config.Save(ConfigurationSaveMode.Modified);
            }
            else
            {
                Console.WriteLine("当前节点不存在");
            }
        }


        /// 
        /// 删除appsetting节点
        /// 
        /// 
        /// 
        public static void DeleteAppSettings(string key, string value)
        {
            if (ConfigurationManager.AppSettings.AllKeys.Contains(key))
            {
                //如果当前节点存在,则删除当前节点
                config.AppSettings.Settings.Remove(key);
                config.Save(ConfigurationSaveMode.Modified);
            }
            else
            {
                Console.WriteLine("当前节点不存在");
            }
        }
    }

在 .NET 1.0 和 1.1 版本中,可以使用 System.Configuration.ConfigurationSettings.AppSettings[“Key”] 来对 key = “Key” 的元素的 value属性 进行访问。




    
        
 	   
 	   
 	   
	    
 	   
    
 

注:现在.Net FrameWork 2.0中已经明确表示此ConfigurationSettings属性已经废弃,建议改为 ConfigurationManager 或 WebConfigurationManager。

3. connectingStrings的读写操作

ConnectionStrings最主要用于数据库连接,ip地址端口号等。
而AppSettings主要用于应用程中的一些配置信息。比如上传文件的路径,需要用到的可能会根据不同环境改变的一些常量等

 
    
  
class Program
    {
        static void Main(string[] args)
        {
            try
            {
                //设置ConnectionStrings 中指定节点的 字符串 
                ConfigurationManager.ConnectionStrings["sbd"].ConnectionString = "ata Source=localhost;port=3306;Initial Catalog=sbd;uid=root;pwd=root;SslMode=none;";

                //获取ConnectionStrings 中指定节点的 字符串 
                string connection = ConfigurationManager.ConnectionStrings["sbd"].ToString();

                //添加ConnectionStrings 节点
                ConfigurationManager.ConnectionStrings.Add(new ConnectionStringSettings("sbd", "Data Source=localhost;port=3306;Initial Catalog=sbd;uid=root;pwd=root;SslMode=none;", "MySql.Data.MySqlClient"));

                Console.WriteLine("运行完成");
            }
            catch
            {
                Console.WriteLine("运行失败");
            }
            Console.ReadKey();
        }
    }

在运行程序后都会在对应的bin/debug或者bin/Release 下生成下图的.config后缀的文件,在第一次运行时,会自动生成****.exe.config后缀的文件,将app.config中的xml文件属性全部复制在****.exe.config后缀的文件里,在程序运行过程中对配置文件的操作都在该文件中进行,并不直接对app.config文件进行修改。

在这里插入图片描述

以上纯属个人使用过程中遇到的问题,记个随笔,供以后参考,仅代表个人,当前时间内的见解,如有问题,欢迎指正。

你可能感兴趣的:(C#,C#,appconfig)