news 2026/9/19 6:09:21

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/9/15 5:36:20

CUDA安装后无法识别?教你正确配置Miniconda中的PyTorch环境

CUDA安装后无法识别&#xff1f;教你正确配置Miniconda中的PyTorch环境 在深度学习项目开发中&#xff0c;你是否曾遇到这样的尴尬场景&#xff1a;明明已经装好了NVIDIA驱动和CUDA Toolkit&#xff0c;系统里nvidia-smi也能正常输出&#xff0c;但一运行Python代码&#xff0c…

作者头像 李华
网站建设 2026/9/16 14:42:14

Python安装完成后未生效?Miniconda-Python3.10刷新PATH路径方法

Python安装完成后未生效&#xff1f;Miniconda-Python3.10刷新PATH路径方法 在人工智能和数据科学项目中&#xff0c;一个常见的“低级但致命”的问题往往是&#xff1a;明明已经安装了 Miniconda 和 Python 3.10&#xff0c;可终端里敲 python 还是提示“命令未找到”。这种看…

作者头像 李华
网站建设 2026/9/15 2:31:04

HTML语义化标签应用:Miniconda-Python3.10提升SEO友好度

HTML语义化标签与Miniconda-Python3.10&#xff1a;构建可复现、高可见的技术内容体系 在人工智能和数据科学项目日益复杂化的今天&#xff0c;一个常被忽视的问题浮出水面&#xff1a;我们能否确保别人不仅“能运行代码”&#xff0c;还能“轻松找到并理解它”&#xff1f;这…

作者头像 李华
网站建设 2026/9/17 13:50:22

Anaconda下载缓慢?改用Miniconda-Python3.10镜像极速体验

Miniconda-Python3.10 镜像&#xff1a;告别 Anaconda 下载慢&#xff0c;开启轻量高效开发 在数据科学和人工智能项目中&#xff0c;你是否曾经历过这样的场景&#xff1a;深夜赶工搭建实验环境&#xff0c;打开浏览器点击 Anaconda 安装包下载链接&#xff0c;进度条却以“每…

作者头像 李华
网站建设 2026/9/10 16:45:04

[HNCTF 2022 WEEK3]CM2

得到文件看起来是一个安装程序粗略的查看一下没什么东西&#xff0c;应该就是正常的安装执行安装主程序随便输测试一下IDA 分析主函数里没找到相关信息查找字符串引用一下上面有两条获取输入的函数&#xff0c;分别赋给 v2&#xff0c;v3有一条判断 v2 ! admin查看验证 v3 的函…

作者头像 李华
网站建设 2026/9/14 13:07:47

Anaconda图形界面劣势:Miniconda命令行更适合服务器部署

Anaconda图形界面劣势&#xff1a;Miniconda命令行更适合服务器部署 在高性能计算集群、云服务器或远程科研环境中&#xff0c;你是否遇到过这样的场景&#xff1f;团队成员提交的训练脚本因为“包版本不一致”而失败&#xff1b;新同事花了整整两天才配好能跑通代码的环境&…

作者头像 李华