4、ASP.Net Core2.0之配置文件的读取
一、配置文件(appsettings.json)文件添加
在ASP.Net Core2.0中没有像webform这样的webcofig文件夹,而它的配置文件放在appsettings.json中的json文件中。通过如下操作可以新增配置文件。
右击项目→添加→类,弹出如下界面,进行添加配置文件。
新增成功后的appsettings.json文件里面默认有数据库连接字符串,内容截图如下:
二、Appsettings.json文件的读取
Appsettings文件的读取有多种方式,下面介绍常用的几种。
1、获取数据库连接字符串
public ActionResult GetConnectionString()
{
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();//创建ConfigurationBuilder对象
//给configurationBuilder对象设置appsettings的路径
configurationBuilder.SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");
var configuration = configurationBuilder.Build();
//获取配置文件中指定的字段值
string connentString = configuration.GetConnectionString("DefaultConnection");
return Content($"connentString:{connentString}");
}
运行结果:
2、单个字段的读取
在appsettings.json文件中新增name节点后:
action中获取值。
public ActionResult GetSingle()
{
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();//创建ConfigurationBuilder对象
//给configurationBuilder对象设置appsettings的路径
configurationBuilder.SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");
var configuration = configurationBuilder.Build();
//获取单独字段
string name = configuration.GetValue<string>("name");
string name1 = configuration["name"];
return Content($"name:{name},name1:{name1}");
}
获取单个字段的方式有两种:configuration.GetValue<string>("name")和configuration["name"]都可以实现。
运行结果:
3、获取数组中的单个值
运行结果:
4、获取对象
按照json中的值创建类:
Startup中添加构造函数和属性:
public IConfigurationRoot Configuration { get; }
public Startup(IHostingEnvironment env){
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
Configuration = builder.Build();
}
ConfigureServices中注册新增实体对象:
controller中添加构造和属性:
public IOptions<AppSettingsModel> settings;
public ConfigController(IOptions<AppSettingsModel> settings) {
this.settings = settings;
}
运行结果: