news 2026/3/16 5:04:54

C#之App.Config文件操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#之App.Config文件操作

C#之App.Config文件操作

/// <summary>/// 操作配置文件(App.config)/// </summary>publicclassCommonConfig{/// <summary>/// 输入Key的值,返回配置的值/// </summary>/// <param name="KeyName"></param>/// <returns></returns>publicstringReadConfig(stringKeyName){Configurationcfa=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);returncfa.AppSettings.Settings[KeyName].Value;}/// <summary>/// 根据配置的名称,查询独立的数据,读取app.config/// </summary>/// <param name="ProName"></param>/// <param name="KeyName"></param>/// <returns></returns>publicstringReadConfig(stringProName,stringKeyName){Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);varmySection=config.GetSection(ProName)asCommonSection;foreach(CommonSection.CommonKeyValueSettingaddinmySection.KeyValues){if(add.Key==KeyName){returnadd.Value;}}returnnull;}/// <summary>/// 增加配置文件/// </summary>/// <param name="KeyName"></param>/// <param name="Value"></param>publicvoidAddConfig(stringKeyName,stringValue){Configurationcfa=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);cfa.AppSettings.Settings.Add(KeyName,Value);cfa.Save(ConfigurationSaveMode.Modified);ConfigurationManager.RefreshSection("appSettings");}/// <summary>/// 根据配置的名称,查询独立的数据,并添加独立的内容/// </summary>/// <param name="ProName"></param>/// <param name="KeyName"></param>/// <param name="Value"></param>/// <returns></returns>publicvoidAddConfig(stringProName,stringKeyName,stringValue){Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);varmySection=config.GetSection(ProName)asCommonSection;mySection.KeyValues.Add(newCommonSection.CommonKeyValueSetting(){Key=KeyName,Value=Value});config.Save();ConfigurationManager.RefreshSection(ProName);//刷新}/// <summary>/// 删除配置文件/// </summary>/// <param name="KeyName"></param>publicvoidDeleteConfig(stringKeyName){Configurationcfa=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);cfa.AppSettings.Settings.Remove(KeyName);cfa.Save(ConfigurationSaveMode.Modified);ConfigurationManager.RefreshSection("appSettings");}/// <summary>/// 修改配置文件数据/// </summary>/// <param name="KeyName"></param>/// <param name="Value"></param>publicvoidWriteConfig(stringKeyName,stringValue){Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);config.AppSettings.Settings[KeyName].Value=Value;config.Save(ConfigurationSaveMode.Modified);ConfigurationManager.RefreshSection("appSettings");}/// <summary>/// 根据配置的名称,查询独立的数据,并修改内容/// </summary>/// <param name="ProName"></param>/// <param name="KeyName"></param>/// <param name="Value"></param>/// <returns></returns>publicvoidWriteConfig(stringProName,stringKeyName,stringValue){Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);varmySection=config.GetSection(ProName)asCommonSection;mySection.KeyValues.Remove(KeyName);mySection.KeyValues.Add(newCommonSection.CommonKeyValueSetting(){Key=KeyName,Value=Value});config.Save();ConfigurationManager.RefreshSection(ProName);//刷新}}/// <summary>/// 配置节点基类/// </summary>publicclassCommonSection:ConfigurationSection{privatestaticConfigurationPropertys_property=newConfigurationProperty(string.Empty,typeof(CommonKeyValueCollection),null,ConfigurationPropertyOptions.IsDefaultCollection);[ConfigurationProperty("",Options=ConfigurationPropertyOptions.IsDefaultCollection)]publicCommonKeyValueCollectionKeyValues{get{return(CommonKeyValueCollection)base[s_property];}}/// <summary>/// 自定义一个集合/// </summary>[ConfigurationCollection(typeof(CommonKeyValueSetting))]publicclassCommonKeyValueCollection:ConfigurationElementCollection{publicCommonKeyValueCollection():base(StringComparer.OrdinalIgnoreCase){}newpublicCommonKeyValueSettingthis[stringname]{get{return(CommonKeyValueSetting)base.BaseGet(name);}set{base[name]=value;}}protectedoverrideConfigurationElementCreateNewElement(){returnnewCommonKeyValueSetting();}protectedoverrideobjectGetElementKey(ConfigurationElementelement){return((CommonKeyValueSetting)element).Key;}publicvoidAdd(CommonKeyValueSettingsetting){this.BaseAdd(setting);}publicvoidClear(){base.BaseClear();}publicvoidRemove(stringname){base.BaseRemove(name);}}/// <summary>/// 集合中的每个元素/// </summary>publicclassCommonKeyValueSetting:ConfigurationElement{/// <summary>/// 键/// </summary>[ConfigurationProperty("key",IsRequired=true)]publicstringKey{get{returnthis["key"].ToString();}set{this["key"]=value;}}/// <summary>/// 值/// </summary>[ConfigurationProperty("value",IsRequired=true)]publicstringValue{get{returnthis["value"].ToString();}set{this["value"]=value;}}}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 11:54:41

本地部署爬虫管理平台 Crawlab 并实现外部访问

Crawlab 是一款分布式爬虫管理平台&#xff0c;支持运行任何语言&#xff0c;具有扩展性还提供了爬虫自动化部署、在线文件编辑等功能。本文将详细的介绍如何利用 Docker 在本地部署 Crawlab 并结合路由侠实现外网访问本地部署的 Crawlab。 第一步&#xff0c;本地部署 Crawla…

作者头像 李华
网站建设 2026/3/13 19:04:32

雪地停车与起步:精准操控的力学实践

雪地停车技巧选择平整开阔区域停车&#xff0c;避免坡道、弯道或低洼处。方向盘需完全回正&#xff0c;在坡道停车时可将前轮转向路缘石等安全侧作为物理阻挡。极低温环境下建议避免使用机械手刹&#xff0c;改为挂入前进挡/倒挡&#xff08;自动挡P挡&#xff09;利用发动机阻…

作者头像 李华
网站建设 2026/3/14 13:09:48

SSH隧道转发应用:Miniconda-Python3.10本地端口映射到云服务器

SSH隧道转发应用&#xff1a;Miniconda-Python3.10本地端口映射到云服务器 在人工智能和数据科学领域&#xff0c;越来越多的开发者面临一个共同挑战&#xff1a;如何用一台普通的笔记本电脑&#xff0c;高效地运行需要强大GPU支持的深度学习模型&#xff1f;现实是&#xff0c…

作者头像 李华
网站建设 2026/3/14 8:48:20

任务规划与执行:AI Agent的行动决策机制

任务规划与执行:AI Agent的行动决策机制 关键词:AI Agent、任务规划、行动决策机制、智能体、算法原理、应用场景 摘要:本文围绕AI Agent的行动决策机制展开深入探讨,详细阐述了任务规划与执行的相关核心概念、算法原理、数学模型等内容。通过实际案例展示了其在不同场景下…

作者头像 李华
网站建设 2026/3/13 2:13:56

Mobile GUI Agent相关学习资料整理

Mobile GUI Agent 通用 GUI 智能体基座 MAI-UI 大佬说 唐杰THU 实践派 大润发杀鱼工&#xff1a;RL的一整年 天晴&#xff1a;用 RL 做 LLM 后训练&#xff1a;半年踩过的坑与心得 周星星&#xff1a;Agent 元年复盘 无大算力时&#xff0c;LLM 还有哪些值得做的研究 …

作者头像 李华
网站建设 2026/3/14 12:15:29

GitHub Wiki文档维护:Miniconda-Python3.10生成自动化API文档

GitHub Wiki文档维护&#xff1a;Miniconda-Python3.10生成自动化API文档 在开源项目和团队协作日益频繁的今天&#xff0c;一个常被忽视却极其关键的问题浮出水面&#xff1a;代码更新了&#xff0c;但文档还停留在几个月前。这种“文档滞后”现象不仅让新成员上手困难&#x…

作者头像 李华