net6 winform应用读取配置文件(依赖注入、普通读取)
在net6框架中winform应用程序没有了appconfig文件,如果我们想存储一些配置字符串我们就需要创建一个json文件,然后去读取这个文件。具体怎么操作呢,下面一起学习一下
首先在项目中新增一个json文件
在net6的框架中没有了appconfig配置文件我们需要新增一个json文件。
项目右键——添加——新建项——web——选择json文件
新增之后需要在单击文件在属性的复制到输出目录选择始终复制,不然在读取时会读不到这个文件
我们在文件中添加一些配置字符串
{"ConnectionStrings": {"Default": "依赖注入获取方式1"},"url": {"url1": "依赖注入获取方式2"},"qwe": {"aaaa": "普通方式获取"}
}
读取
读取时我们可以写一个通用的读取方法 或者是通过依赖注入的方式读取
1.普通方式:
写一个通用方法
public string GetSettings(){var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);IConfigurationRoot configuration = builder.Build();return configuration["qwe:aaaa"];}
2.依赖注入读取方式:
依赖注入的使用可参考我的另一篇文章https://blog.csdn.net/qq_39569480/article/details/127227296?spm=1001.2014.3001.5501
包控制台安装
Microsoft.Extensions.Configuration 库, 包含IConfiguration接口 和 Configuration类
Microsoft.Extensions.Configuration.Json 库, 为 IConfiguration 增加了读取 Json 文件功能,
修改Program.cs文件
using Microsoft.Extensions.Configuration;
namespace DataSync
{internal static class Program{/// <summary>/// The main entry point for the application./// </summary>[STAThread]static void Main(){ // To customize application configuration such as set high DPI settings or default font,// see https://aka.ms/applicationconfiguration.ApplicationConfiguration.Initialize();//创建服务容器var services = new ServiceCollection();//添加服务注册ConfigureServices(services);//先用DI容器生成 serviceProvider, 然后通过 serviceProvider 获取Main Form的注册实例var serviceProvider = services.BuildServiceProvider();var formMain = serviceProvider.GetRequiredService<Form1>(); //主动从容器中获取FormMain实例, 这是简洁写法// var formMain = (FormMain)serviceProvider.GetService(typeof(FormMain)); //更繁琐的写法Application.Run(formMain);}/// <summary>/// 注入服务/// </summary>/// <param name="services"></param>public static void ConfigureServices(IServiceCollection services){//批量注入可以使用Scrutor或者自己封装services.AddScoped<YlbBio>();services.AddScoped(typeof(Form1));//register configurationIConfigurationBuilder cfgBuilder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json").AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT")}.json", optional: true, reloadOnChange: false);IConfiguration configuration = cfgBuilder.Build();services.AddSingleton<IConfiguration>(configuration); }}
}
使用:
namespace DataSync
{public partial class Form1 : Form{ private readonly IConfiguration _configuration;//注入IConfigurationpublic Form1(YlbBio YlbBio, IConfiguration configuration){InitializeComponent(); _configuration = configuration;} private void button1_Click(object sender, EventArgs e){ var Default = _configuration.GetConnectionString("Default"); //从配置文件中读取Default connectionStringConsole.WriteLine(Default );var url = _configuration["url:url1"];Console.WriteLine(url);//普通方式Console.WriteLine(GetSettings());} public string GetSettings(){var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);IConfigurationRoot configuration = builder.Build();return configuration["qwe:aaaa"];} }
}
net6 winform应用读取配置文件(依赖注入、普通读取)相关推荐
- ASP.NET CORE MVC 2.0 如何在Filter中使用依赖注入来读取AppSettings
问: ASP.NET CORE MVC 如何在Filter中使用依赖注入来读取AppSettings 答: Dependency injection is possible in filters as ...
- python读取配置文件失败原因_python读取配置文件报keyerror-文件路径不正确导致的错误...
- 在其他模块使用反射读取配置文件报错,但是在反射模块中读取GetData.check_list又是正确的 反射模块如下: # get_data.py from API_AUTO.p2p_projec ...
- iis无法读取配置文件_SpringBoot 有很多读取配置文件的方法,你知道几个? 静态方法读取呢?...
SpringBoot 如何在静态方法中读取配置文件的值 在Spring中呢有很多读取配置文件值的相关注解,读取这些配置文件都是依赖于Spring的方式.我发现的读取配置文件的方式有好几种. 1.@Va ...
- 【C 语言】文件操作 ( 配置文件读写 | 读取配置文件 | 函数接口形参 | 读取配置文件的逐行遍历操作 | 读取一行文本 | 查找字符 | 删除字符串前后空格 )
文章目录 一.函数接口形参 二.读取配置文件的逐行遍历操作 1.读取配置文件的逐行遍历操作 2.读取一行数据 3.查找字符 4.删除字符串前后的空格 5.完整代码示例 一.函数接口形参 函数作用 : ...
- php程序里的configini_PHP读取配置文件类实例(可读取ini,yaml,xml等)
这篇文章主要介绍了PHP读取配置文件类,可读取ini,yaml,xml等配置文件,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了PHP读取配置文件类实例.分享给大家供大家参考.具体如下: ...
- 【SSM面向CRUD编程专栏 1】Spring简介 xml配置文件 依赖注入 数据注入
- python读取配置文件configparser模块
python使用自带的configparser模块用来读取配置文件,配置文件的形式类似windows中的ini文件 目录 1.新建配置文件 2.读取配置文件 3.打印读取内容 1.新建配置文件 con ...
- Spring详解-------依赖注入的三种方式实例详解
目录 1.什么是依赖注入 1.1类的关系 1.1.1 依赖关系(Dependency) 1.1.2 聚合(Aggregation) 1.2关系强度 2 为什么使用依赖注入 2.1开闭原则 2.1.1 ...
- python读取sqlserver数据库方法_SQLServer数据库之Python读取配置文件,并连接数据库SQL Server...
本文主要向大家介绍了SQLServer数据库之Python读取配置文件,并连接数据库SQL Server,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 用配置文件保存固定 ...
最新文章
- 虚拟桌面的备份恢复最佳实践 第一部分
- 如何将目录下几百个lib加入到vs项目属性下的链接器
- 从数据库读写RadioButtonList选中的值
- linux常用命令总结-第一次考试
- SPS:设置访问群体
- delta3d中,读取自己的xml配置文件。
- 数据抽取oracle_【跟我学】特征抽取算法与应用
- SAP 资产分类的配置方法
- MATLAB代码:基于分布式ADMM算法的考虑碳排放交易的电力系统优化调度研究
- 云尚发卡PHP,PHP云尚发卡系统V1.5.7源码,专门为个人或小型企业提供在线售卡
- MATLAB线性方程组的两种求解,matlab求解线性方程组
- 如何自己动手免费申请软件著作权
- php strtok函数,strtok函数的用法是什么
- win10系统的应用商店不见了怎么安装回来
- 【MOD】函数判别性别
- 大国的崛起:第一集:海洋时代(开篇·葡西)
- 【WCN685X】WCN685X hostapd 设置country码不生效问题分析及解决方案
- 100% 解决 VMware Workstation 与 Hyper-V 不兼容。请先从系统中移除 Hyper-V 角色
- python学习--模型过拟合查看learning curve
- 我的无影云电脑初体验
热门文章
- 天文学习资料(from CL)
- GoAhead3 - 路由处理
- sap basis 常用事务代码
- 网易云音乐和QQ音乐达成合作,有什么影响?
- 【目标定位】基于matlab扩展卡尔曼滤波器多机器人定位【含Matlab源码 2327期】
- openxr runtime Monado 源码解析 源码分析:CreateInstance流程(设备系统和合成器系统)Compositor comp_main client compositor
- Android文字环绕效果
- source insight 3.5 恢复contex窗口及嵌入contex window
- 墨渊第十七版引导页源码 彩虹云任务引导页模板
- DD ENV 13381-2: 垂直防火薄板CE认证