C# 读写Json格式配置文件
|
admin
2024年4月11日 13:59
本文热度 565
|
摘要
为了兼容,仍然可以使用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 编辑过