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

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

CrazyPanda发表于:2024-01-31 23:45:28浏览:384次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 浏览:437 TAG:
【C#】C#调用win10系统自带软键盘的方法
上次做了个笔记是关于调用windows系统自带的触摸键盘的方法:C#调用Windows系统自带触摸键盘的方法_c# 虚拟键盘-CSDN博客除了调用触摸键盘,我们也可以通过调用win10的自带软键盘作为输入途径。方法很简单。1、添加using System.Diagnostics引用。2、创建进程Process Winvirkey = Process.Start(&quot;osk.exe&quot;);3、打开键盘:Winvirkey = Process.Start(&quot;osk.exe&amp;
发表于:2024-01-29 浏览:367 TAG:
【C#】C# NLua Winform 热更新
一、概述NLua 是一个用于 .NET 平台的 Lua 脚本绑定库。它允许在 C# 代码中嵌入 Lua 脚本,并允许两者之间进行交互。NLua 的主要特点包括:轻量级:NLua 是一个轻量级的库,易于集成到现有的 .NET 项目中。动态类型:Lua 是动态类型的语言,这意味着变量的类型可以在运行时改变。灵活的绑定:NLua 提供了灵活的绑定机制,使得 C# 和 Lua 之间的数据交互变得简单。丰富的 API:NLua 提供了丰富的 API,以便在 Lua 脚本中调用 .NET 的类和方法。调试支
发表于:2024-02-18 浏览:358 TAG:
【C#】C#的DateTimePicker控件(日期控件)
目录一、使用DateTimePicker控件显示时间二、使用DateTimePicker控件以自定义格式显示日期三、返回DateTimePicker控件中选择的日期1.源码2.生成效果&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateTimePicker控件(日期控件)用于选择日期和时间,DateTimePicker控件只能选择一个时间,而不是连续的时间段,也可以直接输入日期和时间。一、使用DateTimePicker控件显示时间&nbsp;
发表于:2024-01-29 浏览:391 TAG:
【C#】Winform解决方案打包成.exe 安装版Windows桌面应用程序
踩了几天的坑,慢慢爬出来了。帮助一下新手友人吧,高手请绕路。IDE Version:Visual Studio 20191.安装Microsoft Visual Studio Installer Project(1)打开Visual Studio 2019,扩展-&gt;管理扩展(2)搜索install,下载图中的扩展即可(我已经安装了,所以没有下载按钮)按照操作安装即可2.打包(1)右键 解决方案-&gt;添加-&gt;新建项目(2)搜索setup-&gt;选择 Setup Project-&amp;
发表于:2024-01-28 浏览:481 TAG:
【C#】C# Winform GDI+ 绘图
目录一、概述二、绘图1.画直线2.画矩形3.画圆、圆弧4.画扇形5.画多边形6.绘制字符串7.填充图形结束一、概述Graphics类是GDI+技术的一个基本类。GDI+(Graphics Device Interface)是.NET框架的重要组成部分,提供对二维图形图像和文字排版处理的支持。GDI+相关的类分布在下列命名空间中: System.Drawing:提供了最基本的绘图功能(比如画直线、矩形、椭圆等); System.Drawing.Drawing2D: 提供了高级的二维和矢量绘图功能(
发表于:2024-02-18 浏览:387 TAG:
【C#】C# 自动更新(基于FTP)
目录一、前言二、功能的实现1.本地黑名单2.读取配置文件3.读取 FTP 文件列表4.读取本地文件5.匹配更新6.版本的切换三、环境搭建四、常见问题2023.12.30 更新结束效果启动软件后,会自动读取所有的 FTP 服务器文件,然后读取本地需要更新的目录,进行匹配,将 FTP 服务器的文件同步到本地Winform 界面一、前言在去年,我写了一个 C# 版本的自动更新,这个是根据配置文件 + 网站文件等组成的框架,以实现本地文件的新增、替换和删除,虽然实现了自动更新的功能,但用起来过于复杂,代
发表于:2024-02-03 浏览:365 TAG:
【C#】C# Winform DataGridView 数据刷新问题
目录一、问题二、创建项目三、绑定空的数据源四、绑定有数据的数据源五、修改绑定的数据源六、解决数据源刷新问题七、解决刷新数据界面闪烁一、问题DataGridView 是比较常用的表格控件,在 DataGridView 中显示数据,&nbsp;一般使用 dataGridView1.DataSource = 数据源,来绑定数据,数据源可以是 DataTable、List、Dictionary 等,那么如何做到及时刷新数据呢,这里我提出几个问题:1.绑定一个空的数据源,后面向数据源添加数据。2.Data
发表于:2024-02-05 浏览:353 TAG:
【C#】C#Windows桌面应用开发实践
速览必须功能一览简单下载异步下载如何解决下载文件不完整的问题使用 Downloader 进行 HTTP 多线程下载创建一个下载服务:下载非 HTTP 协议的文件注册表相关的操作(添加与删除)文件占用问题的处理防止重复启动只开一个实例,通用弹窗和提示 使用示例使用 C# 下载文件 (引用自使用 C# 下载文件的十八般武艺)常用接口示例必须功能一览注册表相关的操作(添加与删除)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RegistryKey&nbsp;hkm
发表于:2024-01-28 浏览:372 TAG:
【C#】Winform NanUI 0.88版本 JS和C#相互调用
目录一、需求版本二、实例JS调用C#注册的只读属性JS调用C#注册的字段JS调用C#注册的同步方法JS调用C#注册的异步方法C#注册一个方法,JS调用并传递参数C#注册一个方法,JS调用并接收C#返回值C#注册一个方法,接收JS的数组参数C#注册一个方法,接收JS的一个函数,执行这个JS函数,并将C#的值传递过去三、结束一、需求在软件的界面和软件逻辑分离后,最重要的就是要处理参数的传递,和函数的调用,因此存在JS中和C#相互调用的需求。版本NanUI 版本:0.8.80.191二、实例using
发表于:2024-02-06 浏览:379 TAG: