news 2026/4/18 13:56:25

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/4/18 11:03:52

Conda search查找可用包:Miniconda-Python3.10探索新工具

Conda search查找可用包&#xff1a;Miniconda-Python3.10探索新工具 在现代数据科学和人工智能项目的开发中&#xff0c;一个常见的痛点是&#xff1a;为什么同样的代码在同事的机器上能跑通&#xff0c;到了你的环境却报错&#xff1f;问题往往不在于代码本身&#xff0c;而在…

作者头像 李华
网站建设 2026/4/18 8:35:17

本地部署 AI 数据库神器 Chat2DB 并实现外部访问

Chat2DB 是一款免费开源的多数据库客户端工具&#xff0c;这款工具集成了 AI 功能&#xff0c;支持自然语言与 SQL 转换、智能生成 SQL 语句、数据库管理等功能。而且支持 Windows、Mac 本地安装&#xff0c;也支持服务器端部署。 本文将详细的介绍如何利用 Docker 在本地部署 …

作者头像 李华
网站建设 2026/4/18 11:01:37

Windows本地微调大模型全攻略:从零打造你的专属猫娘AI助手

本文详细介绍了作者如何在Windows本地环境中使用unsloth框架对Qwen3-14B模型进行监督微调&#xff0c;通过NekoQA-10K猫娘对话数据集训练&#xff0c;成功创建了一个具有猫娘性格特征的AI助手。文章分享了环境配置、BUG解决及微调全流程&#xff0c;展示了微调后模型的显著变化…

作者头像 李华
网站建设 2026/4/18 7:53:56

无代码还是Vibe Coding? 场景二

场景特征&#xff1a; 与编程的接近程度&#xff1a;低问题的复杂性&#xff1a;低工作的紧迫性&#xff1a;低构建的质量&#xff1a;高 延伸阅读 Vibe Coding vs. 低代码/无代码平台&#xff1a;为每种构建场景选择合适的工具&#xff08;序言&#xff09; 工具选择 使用…

作者头像 李华
网站建设 2026/4/18 8:05:53

无代码还是Vibe Coding? 场景三

场景特征&#xff1a; 与编程的接近程度&#xff1a;低问题的复杂性&#xff1a;低工作的紧迫性&#xff1a;高构建的质量&#xff1a;高 延伸阅读 Vibe Coding vs. 低代码/无代码平台&#xff1a;为每种构建场景选择合适的工具&#xff08;序言&#xff09; 无代码还是Vibe…

作者头像 李华