管理杂谈OA答疑ERP答疑教程搜索

C# 读写Json格式配置文件


摘要


为了兼容,仍然可以使用Web.config,App.config 和ConfigurationManager类,但不推荐。

.NET中的配置系统支持丰富的配置源,包括文件(json、xml、ini等)、注册表、环境变量、命令行、Azure Key Vault等,还可以配置自定义配置源。可以跟踪配置的改变,可以按照优先级覆盖。

正文


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"]);


更多精彩文章浏览...
点击右上角图标分享到朋友圈
官方网站:http://www.clicksun.cn
咨询热线:400-186-1886
服务邮箱:service@clicksun.cn