asp.net core 2.1 配置管理
1. 直接读取配置
startup类中使用 configuration["connectionstring"], configuration["aliyunaksk:ak"]
如果在service中想读取配置, 就先注入iconfiguration configuration
2. 配置强类型化读取
现有配置节点如下
"osssettings": {
"configitems": [
{
"name": "ali_",
"domain": "img.",
"officaldomain": "img.",
"accessid": "",
"accesskey": "",
"endpoint": ",
"bucketname": "",
"platform": "ali"
}
],
"currentossname": "al",
"templateossname": ""
}定义一个接口, 并实现这个接口.
public interface iosssettings
{
ienumerable<ossconfig> configitems { get; }
string currentossname { get; }
string templateossname { get; }
}然后在startup的configureservices中添加注入
services.addsingleton<iosssettings>((os) =>
{
var section = configuration.getsection("osssettings");
return section.get<osssettings>();
});之后就可以在任何地方愉快滴使用 iosssettings来注入使用了
3. 外置配置文件
public class program { public static void main(string[] args) { createwebhostbuilder(args).build().run(); } private static iconfiguration configuration { get { var configuration = new configurationbuilder() .setbasepath(directory.getcurrentdirectory()) .addjsonfile("appsettings.json", optional: false, reloadonchange: true) // custom config file .addjsonfile("globalsettings.json", optional: false, reloadonchange: false) .build(); return configuration; } } public static iwebhostbuilder createwebhostbuilder(string[] args) => webhost.createdefaultbuilder(args) .useconfiguration(configuration) .usestartup<startup>(); }
新建一个类globalsettings
services.configure<globalsettings>(configuration);
需要使用options注入使用, 见 https://www.cnblogs.com/qinzb/p/9297143.html
然后就可以使用上面介绍的方式来注入使用了
推荐阅读
-
创建基于ASP.NET core 3.1 的RazorPagesMovie项目(一)-创建和使用默认的模板
-
ASP.NET Core Web API 最佳实践指南
-
使用NuGet将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理
-
Linux下自动化部署ASP.NET CORE 3.1(Docker+Jenkins+Nginx)
-
创建基于ASP.NET core 3.1 的RazorPagesMovie项目(三)-已搭建基架的Razor页面解释和更新
-
【架构篇】ASP.NET Core 基于 Consul 动态配置热更新
-
使用ASP.NET Core 3.x 构建 RESTful API - 5.1 输入验证
-
Jexus 5.8.2正式发布! 为Asp.Net Core生产环境提供平台支持
-
asp.net core系列 24 EF模型配置(主键,生成值,最大长度,并发标记)
-
ASP.NET Core 装X利器SignalR:电子画板