背景
在.net core类库中读取配置文件,正常来讲我们在应用程序目录下有个appsettings.json文件对于相关配置都会放在这个json文件中,但是要是建立一个类库项目,对于一些配置比如密钥或者其他需要硬编码的数据放在JSON文件中,在.net core之前配置文件为web.config并且有相关的类来读取节点上的数据,现如今在.net core中为json文件,那么我们该如何做?
代码实现
假如在 项目根目录下创建一个 json 文件,内容如下:
{
"arealist": [
{
"title": "中院级",
"childs": [
{
"id": "0",
"name": "宁德中院"
}
]
},
{
"title": "各区级",
"childs": [
{
"id": "1",
"name": "蕉城区"
},
{
"id": "2",
"name": "福安市"
},
{
"id": "3",
"name": "福鼎市"
},
{
"id": "4",
"name": "霞浦县"
},
{
"id": "5",
"name": "古田县"
},
{
"id": "6",
"name": "屏南县"
},
{
"id": "7",
"name": "寿宁县"
},
{
"id": "8",
"name": "周宁县"
},
{
"id": "9",
"name": "柘荣县"
}
]
}
]
}
将注册服务的时候把配置文件与类绑定好值,然后在使用的时候去用
builder.Host.ConfigureAppConfiguration((hostingContext, config) =>
{
config.AddJsonFile("areaData.json",
optional: true,
reloadOnChange: true); ;
});
然后在用的地方通过注入获取IConfiguration
private readonly IConfiguration _config;
public NingdeChartController(IConfiguration config, INdChartBll chartBll)
{
_chartBll = chartBll;
_config = config;
}
var disputes = _config.GetSection("arealist").Get<List<Class1AreaModel>>();