关于C#config文件处理

关于C#config文件处理

问题描述:

有个程序的config文件是这么写的 图片说明
这个程序如果要添加配置 直接在config文件里加一行
add key="增加" value="192.168.11.111"/
程序里就可以新增一条,请问这种config文件的读取方式,在代码里是怎么实现的

这个读写web.config代码,测试过可以用
https://www.cnblogs.com/zhangqs008/p/3773630.html


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="download.test" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Web.Configuration" %>
<script runat="server">

        /// <summary>  
        /// WebConfig读写辅助类  
        /// </summary>  
        public class WebConfigManager : IDisposable  
        {  
            private Configuration _config;  

            /// <summary>  
            /// WebConfig读写辅助类  
            /// </summary>  
            public WebConfigManager()  
                : this(HttpContext.Current.Request.ApplicationPath)  
            {  
            }  
            /// <summary>  
            /// WebConfig读写辅助类  
            /// </summary>  
            /// <param name="path"></param>  
            public WebConfigManager(string path)  
            {  
                _config = WebConfigurationManager.OpenWebConfiguration(path);  
            }  

            #region IDisposable Members  

            public void Dispose()  
            {  
                if (_config != null)  
                {  
                    _config.Save();  
                }  
            }  

            #endregion  

            /// <summary>   
            /// 设置应用程序配置节点,如果已经存在此节点,则会修改该节点的值,否则添加此节点  
            /// </summary>   
            /// <param name="key">节点名称</param>   
            /// <param name="value">节点值</param>   
            public void SetAppSetting(string key, string value)  
            {  
                var appSetting = (AppSettingsSection)_config.GetSection("appSettings");  
                if (appSetting.Settings[key] == null) //如果不存在此节点,则添加   
                {  
                    appSetting.Settings.Add(key, value);  
                }  
                else //如果存在此节点,则修改   
                {  
                    appSetting.Settings[key].Value = value;  
                }  
                Save();  
            }  

            /// <summary>   
            /// 设置数据库连接字符串节点,如果不存在此节点,则会添加此节点及对应的值,存在则修改   
            /// </summary>   
            /// <param name="key">节点名称</param>  
            /// <param name="connectionString"> </param>  
            public void SetConnectionString(string key, string connectionString)  
            {  
                var connectionSetting = (ConnectionStringsSection)_config.GetSection("connectionStrings");  
                if (connectionSetting.ConnectionStrings[key] == null) //如果不存在此节点,则添加   
                {  
                    var connectionStringSettings = new ConnectionStringSettings(key, connectionString);  
                    connectionSetting.ConnectionStrings.Add(connectionStringSettings);  
                }  
                else //如果存在此节点,则修改   
                {  
                    connectionSetting.ConnectionStrings[key].ConnectionString = connectionString;  
                }  
                Save();  
            }  

            /// <summary>   
            /// 保存所作的修改   
            /// </summary>   
            public void Save()  
            {  
                _config.Save();  
                _config = null;  
            }  
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            var config = new WebConfigManager();
            config.SetAppSetting("StrRegex", "");  
        }
</script>

ConfigurationManager.AppSettings["前台"]

这种方法我会,如果程序里要添加一条,这个程序可以直接在配置文件里 加 add key="新加的" value="192.168.11.111"/ 程序里就会多出来一条 这种方式我不会

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["WcfWinForm.Common.Entities"].Value = strConn;
config.Save(ConfigurationSaveMode.Modified);