• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#操作配置文件的方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
using System;
using System.Configuration;

namespace HT.IMS.Utility
{
    /// <summary>
    /// 操作配置文件(修改)
    /// </summary>
    public class AppSettings
    {
        /// <summary>
        /// 设置配置文件AppSettings节点的键名和值并持久化到文件
        /// </summary>
        /// <param name="key">节点名称</param>
        /// <param name="value">节点值</param>
        public static void SetConfig(string key, string value)
        {
            try
            {
                //打开配置文件流
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

                AppSettingsSection section = config.AppSettings;

                if (section != null && section.Settings[key] != null)
                {
                    section.Settings[key].Value = value;
                }
                else
                {
                    section.Settings.Add(new KeyValueConfigurationElement(key, value));
                }

                //保存修改后的节点
                config.Save(ConfigurationSaveMode.Modified);

                //刷新节点,以便下次从 ConfigurationManager.AppSettings 中取值时,
                //重新从磁盘读取节点的值
                ConfigurationManager.RefreshSection("appSettings");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static void SetConfigConnectionstring(string key, string value)
        {
            try
            {
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

                ConnectionStringsSection section = config.ConnectionStrings;

                if (section != null && section.ConnectionStrings[key] != null)
                {
                    section.ConnectionStrings[key].ConnectionString = value;
                }
                else
                {
                    section.ConnectionStrings.Add(new ConnectionStringSettings(key, value, "System.Data.SqlClient"));
                }

                config.Save(ConfigurationSaveMode.Modified);

                ConfigurationManager.RefreshSection("connectionStrings");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }

    /// <summary>
    /// 操作配置文件(读取)
    /// </summary>
    /// <typeparam name="T">返回什么类型的值</typeparam>
    public class AppSettings<T> : AppSettings
    {
        public static T GetConfig(string key, byte valType = 0)
        {
            try
            {
                Type type = typeof(T);
                object result = null; //返回特定类型的值                
                object val = null; //配置节点的值

                if (valType == 0)
                    val = ConfigurationManager.AppSettings[key];
                else
                    val = ConfigurationManager.ConnectionStrings[key];

                if (type == typeof(int))
                    result = Convert.ToInt32(val);
                else if (type == typeof(string))
                    result = Convert.ToString(val);
                else if (type == typeof(double))
                    result = Convert.ToDouble(val);
                else
                    result = Convert.ChangeType(val, type);

                return (T)result;
            }
            catch
            {
                return default(T);
            }
        }
    }
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#中窗体show()与showdialog()的区别发布时间:2022-07-14
下一篇:
c#excelprint打印将所有列调整为一页发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap