您的当前位置:首页>全部文章>文章详情

【C#】C# Winform 配置文件App.config

CrazyPanda发表于:2024-01-31 23:45:28浏览:374次TAG:

目录

一、简介

二、添加引用 

三、添加节点

1.普通配置节点

2.数据源配置节点

四、管理类 ConfigHelper.cs

1.获取配置节点

2.更新或加入配置节点

结束




一、简介

在C#中,配置文件很常用,ASP.NET 和 Winform 名称不同,用法一样,如下图

1.png

config 文件通常用来存储一些需要修改的数据,比如用户名密码,连接数据库的IP地址等,而不是在代码中写死。有人可能会问,那我自己自定义一个配置文件也行,为什么要用它这个?区别当然有,微软自己封装的读取和写入会更简单一些,你自己封装的,就要自己去封装测试,但最终的效果其实是一样的。


二、添加引用 

添加 System.Configuration.dll

1.png

三、添加节点

常用的下面两种,第一种是常用的方式 appSettings,第二种是用在数据库的 connectionStrings

1.普通配置节点

<appSettings>  
  <add key="COM1" value="我是一个串口号" />
</appSettings>

这种写法,读取方式可以用下面的方式

string connStr = ConfigurationManager.AppSettings["url"];

如果是 int 类型,可以直接转换类型

<add key="app.year" value="2018"/>
<add key="app.month" value="11"/>
<add key="app.day" value="08"/>

int  appYear = int.Parse(ConfigurationManager.AppSettings["app.year"]);
int  appMonth = int.Parse(ConfigurationManager.AppSettings["app.month"]);
int  appDay = int.Parse(ConfigurationManager.AppSettings["app.day"]);


2.数据源配置节点

<connectionStrings>
  <add name="kyd" connectionString="server=.;database=xxxxx;user=sa;pwd=123"/>
</connectionStrings>

四、管理类 ConfigHelper.cs

代码:

using System.Configuration;
 
namespace Utils
{
    public class ConfigHelper
    {
        ///<summary> 
        ///返回*.exe.config文件中appSettings配置节的value项 
        ///</summary> 
        ///<param name="strKey"></param> 
        ///<returns></returns> 
        public static string GetAppConfig(string strKey)
        {
            string file = System.Windows.Forms.Application.ExecutablePath;
            Configuration config = ConfigurationManager.OpenExeConfiguration(file);
            foreach (string key in config.AppSettings.Settings.AllKeys)
            {
                if (key == strKey)
                {
                    return config.AppSettings.Settings[strKey].Value.ToString();
                }
            }
            return null;
        }
 
        ///<summary> 
        ///在*.exe.config文件中appSettings配置节增加一对键值对 
        ///</summary> 
        ///<param name="newKey"></param> 
        ///<param name="newValue"></param> 
        public static void UpdateAppConfig(string newKey, string newValue)
        {
            string file = System.Windows.Forms.Application.ExecutablePath;
            Configuration config = ConfigurationManager.OpenExeConfiguration(file);
            bool exist = false;
            foreach (string key in config.AppSettings.Settings.AllKeys)
            {
                if (key == newKey)
                {
                    exist = true;
                }
            }
            if (exist)
            {
                config.AppSettings.Settings.Remove(newKey);
            }
            config.AppSettings.Settings.Add(newKey, newValue);
            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("appSettings");
        }
 
    }
}


1.获取配置节点

//获取配置节
string res = ConfigHelper.GetAppConfig("COM1");
Console.WriteLine("====================" + res);

效果:

1.png


2.更新或加入配置节点

//更新或加入配置节
ConfigHelper.UpdateAppConfig("COM2", "xxxxxxxx");

运行后,我们需要在配置文件中查看效果是否实现,打开生成目录下的config文件


1.png

可以看到,已经自动加入了一个配置节

1.png



结束

如果这个帖子对你有用,欢迎关注 + 点赞 + 留言,谢谢

end


原文链接https://blog.csdn.net/qq_38693757/article/details/113624329

猜你喜欢

【C#】CSDK/IDE-VSCode 搭建 C# 开发环境
&nbsp;&nbsp;&nbsp;&nbsp;最近准备写&nbsp;C#&nbsp;的笔记总结专栏&nbsp;bug&nbsp;笔记本硬盘空间实在是不够用了 &nbsp;&nbsp;&nbsp;&nbsp;根本没有办法再安装一个&nbsp;Visual&nbsp;Studio&nbsp;集成开发环境了!!! &nbsp;&nbsp;&nbsp;&nbsp;在学&nbsp;Java&nbsp;的过程中基本都是用记事本和命令提示符……再也不想经历了 &nbsp; &nbsp;&nbsp;&amp;nbs
发表于:2024-01-28 浏览:428 TAG:
【C#】C#超急速举例入门-适用有C/C++语言基础
前提编程环境:vs2022电脑系统:win10学习目的:能看懂c#,不纠结各种细节,快速适应开发。入门篇程序结构变量类型类似c语言,不掌握细节,int,float,double都有。输入输出Console.WriteLine(&quot;变量0:{0}&quot;,&nbsp;para0); var&nbsp;a=Console.ReadLine();&nbsp;运算符几乎相同。sizeof();typeof();取地址,取值:&amp;,*;三元运算符: ? :判断类型:is强制转换:as。注
发表于:2024-01-30 浏览:340 TAG:
【C#】c#Windows桌面程序退入托盘及右键菜单
一. 退出托盘功能窗体加组件notifyIcon修改属性,属性中加入要在托盘显示时呈现的图标。添加MouseClick事件编辑代码:private&nbsp;void&nbsp;Form_Main_FormClosing(object&nbsp;sender,&nbsp;FormClosingEventArgs&nbsp;e) { &nbsp;&nbsp;&nbsp;&nbsp;e.Cancel&nbsp;=&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;this.Hid
发表于:2024-01-28 浏览:391 TAG:
【C#】C#Windows桌面应用开发实践
速览必须功能一览简单下载异步下载如何解决下载文件不完整的问题使用 Downloader 进行 HTTP 多线程下载创建一个下载服务:下载非 HTTP 协议的文件注册表相关的操作(添加与删除)文件占用问题的处理防止重复启动只开一个实例,通用弹窗和提示 使用示例使用 C# 下载文件 (引用自使用 C# 下载文件的十八般武艺)常用接口示例必须功能一览注册表相关的操作(添加与删除)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RegistryKey&nbsp;hkm
发表于:2024-01-28 浏览:362 TAG:
【C#】C# Winform 多个程序之间的通信(非Scoket)
效果功能:打开窗体自动连接主程序,并自动添加到列表,可以向子程序群发消息可以向单个程序单独发送消息在退出程序后,添加的程序列表会自动移除一、概述参考:C# Winfrom程序之间通讯_c# sendmessege copydatastruct 返回多个值_熊思宇的博客-CSDN博客在之前我写过 winform 程序与程序之间的通信,但是这个版本有个问题,那就是只能由两个程序进行通信,同时打开多个程序的话,接收方收到的数据就会一模一样,这次发表这个教程,也就是要解决这个问题。归根结底,还是&amp;nbs
发表于:2024-02-03 浏览:296 TAG:
【C#】C# 自动更新(基于FTP)
目录一、前言二、功能的实现1.本地黑名单2.读取配置文件3.读取 FTP 文件列表4.读取本地文件5.匹配更新6.版本的切换三、环境搭建四、常见问题2023.12.30 更新结束效果启动软件后,会自动读取所有的 FTP 服务器文件,然后读取本地需要更新的目录,进行匹配,将 FTP 服务器的文件同步到本地Winform 界面一、前言在去年,我写了一个 C# 版本的自动更新,这个是根据配置文件 + 网站文件等组成的框架,以实现本地文件的新增、替换和删除,虽然实现了自动更新的功能,但用起来过于复杂,代
发表于:2024-02-03 浏览:342 TAG:
【C#】C#二分查找(迭代与递归)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;二分搜索被定义为一种在排序数组中使用的搜索算法,通过重复将搜索间隔一分为二。二分查找的思想是利用数组已排序的信息,将时间复杂度降低到O(log N)。二分查找算法示例&nbsp;何时在数据结构中应用二分查找的条件: 应用二分查找算法: &nbsp; &nbsp; &nbsp; &nbsp; 1、数据结构必须是有序的。 &nbsp; &nbsp; &nbsp; &nbsp; 2、访问数据结构的任何元素都
发表于:2024-03-11 浏览:308 TAG:
【C#】Winform NanUI 0.77版本 读取嵌入式资源
引入NanUI框架这三个组件都要引入了,NetDimension.NanUI.AssemblyResourceHandler 是属于嵌入式资源部分,下载地址:由于作者已经废弃了这个版本,在VS2019中的 NuGet 程序包 中已经下载不了,我这里上传了,有需要的可以点击下面链接下载NanUI.AssemblyResourceHandler.0.7.4&nbsp;下载&nbsp;另外,NanUI.AssemblyResourceHandler 源码github地址:GitHub - maxjov
发表于:2024-02-06 浏览:371 TAG:
【C#】C# Winfrom 右键菜单
目录一、概述二、新建&nbsp;winform 项目三、给图片控件添加右键菜单四、给菜单添加点击事件五、测试结束一、概述ContextMenuStrip 是 Windows 窗体应用程序中的一个控件,它提供了一个弹出菜单,用于在用户右键单击控件或其他界面元素时显示上下文相关的选项。它通常用于在图形用户界面中提供快捷操作和功能。ContextMenuStrip 控件可以通过在 Visual Studio 的设计器中拖放方式添加到窗体上,或者通过编程方式创建和配置。它可以与其他控件(如按钮、文本框等
发表于:2024-02-02 浏览:354 TAG:
【C#】C# System.Windows.Forms.DataVisualization Demo案例
简介DataVisualization 其实就是Winform 中自带的 Chart 控件,整个图形控件主要由以下几个部份组成:1.Annotations --图形注解集合2.ChartAreas&nbsp; --图表区域集合3.Legends&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --图例集合4.Series  &nbsp; --图表序列集合(即图表数据对象集合)5.Titles   --图标的标题集合每个集合具体介绍,可以参考下面的帖子,看完了介绍,一定对你理解这个插件
发表于:2024-02-01 浏览:286 TAG: