net6 winform应用读取配置文件(依赖注入、普通读取)

16 篇文章 0 订阅

在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 configuration
            IConfigurationBuilder 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;//注入IConfiguration
        public Form1(YlbBio YlbBio, IConfiguration configuration)
        {
            InitializeComponent(); 
            _configuration = configuration;
        } 

        private void button1_Click(object sender, EventArgs e)
        { 
            var Default = _configuration.GetConnectionString("Default");  //从配置文件中读取Default connectionString
            Console.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"];
        } 
    }
}

在这里插入图片描述

WinForm读取Oracle配置文件,可以按照以下步骤进行: 1. 首先,确保已经正确安装了Oracle客户端,并配置好了环境变量。这样才能在WinForm中正确访问Oracle数据库。 2. 在WinForm的项目中添加一个配置文件,可以命名为“App.config”,这个文件将用于存储Oracle数据库的连接信息。 3. 在配置文件中添加以下代码,用于配置Oracle数据库的连接信息: ```xml <configuration> <appSettings> <add key="OracleConnectionString" value="Data Source=数据库地址;User ID=用户名;Password=密码;"/> </appSettings> </configuration> ``` 其中,将“数据库地址”替换为实际的Oracle数据库地址、“用户名”替换为要连接的数据库的用户名、“密码”替换为对应的密码。 4. 在WinForm中的代码中,可以通过以下方法读取配置文件中的连接信息: ```csharp string connectionString = ConfigurationManager.AppSettings["OracleConnectionString"]; ``` 这样就可以获取到配置文件中存储的Oracle数据库的连接字符串。 5. 使用获取到的连接字符串进行数据库操作,例如连接数据库、执行SQL语句等。 需要注意的是,配置文件中的连接信息可以根据实际情况进行修改,以适应不同的Oracle数据库连接需求。另外,在代码中访问配置文件需要引用`System.Configuration`命名空间。 以上就是在WinForm读取Oracle配置文件的基本步骤。通过配置文件,在不同环境下可以方便地修改连接信息,使得程序更加灵活和易于维护。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香煎三文鱼

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值