我想要我的 .net core 3.1 winforms 项目中有一个配置文件。我有以下工作来读取文件
using Microsoft.Extensions.Configuration;
using System;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace FeedRead
{
public partial class Form1 : Form
{
private ConfigurationBuilder configuration;
public Form1()
{
configuration = new ConfigurationBuilder();
configuration.SetBasePath(System.IO.Directory.GetCurrentDirectory());
configuration.AddJsonFile(path: "appsettings.json", optional: false, reloadOnChange: true);
configuration.Build();
}
Run Code Online (Sandbox Code Playgroud)
但是当我进行更改后如何保存配置呢?
我尝试了以下操作,但不知道如何完成。
private void Form1_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
{
configuration.Properties.Add("col1Width", listView1.Columns[0].Width);
var extn = configuration as Microsoft.Extensions.Configuration.IConfigurationBuilder; // not sure about
var provider = extn.GetFileProvider();
var info = provider.GetFileInfo(subpath: "appsettings.json"); // not sure about
// how do i save?
}
Run Code Online (Sandbox Code Playgroud)
在 Startup.cs 文件中,添加以下内容:
private IConfiguration Configuration { get; }
public Startup(IWebHostEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public void ConfigureServices(IServiceCollection services)
{
_appSettings = Configuration.GetSection("AppSettings").Get<AppSettings>();
services.AddSingleton(_appSettings);
...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9840 次 |
最近记录: |