编辑
2025-09-24
C#
00

目录

摘要
正文

摘要

为了兼容,仍然可以使用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文件

image.png

image.png

编写一下json

JSON
{ "Email": "admin@admin.com", "Name": "admin", "Password": "123456", "SmtpServer": "smtp@admin.com", "DbInfo": { "Uid": "sa", "Password": "123", "Ip": "127.0.0.1" } }

读取

C#
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"];//多层次用: }

image.png

我们还可以用类映射的方式来读取

声明一个DbInfo类

C#
public class DbInfo { public string Uid { get; set; } public string Password { get; set; } public string Ip { get; set; } }

安装包 Microsoft.Extensions.Configuration.Binder

C#
var db=root.GetSection("DbInfo").Get<DbInfo>(); txtUid.Text = db.Uid; txtDbPassword.Text = db.Password; txtIp.Text = db.Ip;

image.png

修改一下DbInfo类

C#
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中读取

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

image.png

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!