C# 读写Json格式配置文件
|
admin
2024年4月11日 13:59
本文热度 2182
|
摘要
为了兼容,仍然可以使用Web.config,App.config 和ConfigurationManager类,但不推荐。
.NET中的配置系统支持丰富的配置源,包括文件(json、xml、ini等)、注册表、环境变量、命令行、Azure Key Vault等,还可以配置自定义配置源。可以跟踪配置的改变,可以按照优先级覆盖。
正文
Json文件配置
创建一个ison文件,文件名随意,比如config.json,设置“如果较新则复制”。参考备注
NuGet安装Microsoft.Extensions.Configuration和Microsoft.Extensions.Configuration.Json
一个例子
在项目中添加一个json文件


编写一下json
{ "Email": "admin@admin.com", "Name": "admin", "Password": "123456", "SmtpServer": "smtp@admin.com", "DbInfo": { "Uid": "sa", "Password": "123", "Ip": "127.0.0.1" }}
读取
private void btnRead_Click(object sender, EventArgs e){ ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddJsonFile("config.json", true, true); IConfigurationRoot root=builder.Build(); txtEmail.Text = root["Email"]; txtName.Text = root["Name"]; txtPassword.Text = root["Password"]; txtSmtp.Text = root["SmtpServer"]; txtUid.Text = root["DbInfo:Uid"];//多层次用:}

我们还可以用类映射的方式来读取
声明一个DbInfo类
public class DbInfo{ public string Uid { get; set; } public string Password { get; set; } public string Ip { get; set; }}
安装包 Microsoft.Extensions.Configuration.Binder
var db=root.GetSection("DbInfo").Get<DbInfo>();txtUid.Text = db.Uid;txtDbPassword.Text = db.Password;txtIp.Text = db.Ip;

修改一下DbInfo类
public class DbInfo{ public static string Uid { get; set; } public static string Password { get; set; } public static string Ip { get; set; }
public static List<string> Ips { get; set; }=new List<string>();}
在Program中读取
ConfigurationBuilder builder = new ConfigurationBuilder();builder.AddCommandLine(args);IConfigurationRoot root= builder.Build();
DbInfo.Ip =root["server"];DbInfo.Uid = root["uid"];DbInfo.Password = root["password"];
DbInfo.Ips.Add(root["ips:0"]);DbInfo.Ips.Add(root["ips:1"]);

该文章在 2024/4/11 15:24:02 编辑过