【.net core 静态类获取appsettings】黄沙百战穿金甲,不破楼兰终不还。这篇文章主要讲述.net core 静态类获取appsettings相关的知识,希望能为你提供帮助。
注入获取
通过IConfiguration直接获取的方法官方文档里就有,可以直接看这里
如:appsettings.json
{
"
Position"
: {
"
Title"
: "
编辑器"
,
"
Name"
: "
Joe Smith"
},
"
MyKey"
: "
My appsettings.json Value"
,
"
Logging"
: {
"
LogLevel"
: {
"
Default"
: "
Information"
,
"
Microsoft"
: "
Warning"
,
"
Lifetime"
: "
Information"
}
},
"
AllowedHosts"
: "
*"
}
可以用注入的IConfiguration,用冒号分隔的形式取值,如下
var name = Configuration["
Position:Name"
];
实体类获取
单个获取对应多个组合的值就不太方便,比如Logging最好能用一个类类直接接收,方法如下:
先定义一个跟json节点对应的类
public class Logging
{
public LogLevel LogLevel { get;
set;
}
}
public class LogLevel
{
public string Default { get;
set;
}
public string Microsoft { get;
set;
}
public string Lifetime { get;
set;
}
}
然后在Startup的里ConfigureServices增加
services.Configure<
Logging>
(Configuration.GetSection("
Logging"
));
调用的地方直接注入
private readonly Logging _config;
public HomeController(IOptions<
Logging>
config)
{
_config = config.Value;
}
静态类获取
如果是在静态类里使用,可以在Startup里的构造函数中这样写
public Startup(IConfiguration configuration)
{
Configuration = configuration;
configuration.GetSection("
Logging"
).Bind(MySettings.Setting);
}
使用IConfigurationSection的Bind方法将节点直接绑定至一个实例上,注意示例必须是初始化过的。
public static class MySettings
{
public static Logging Setting { get;
set;
} = new Logging();
}
有了静态类的属性在在静态类里就可以使用了。
推荐阅读
- T+手机端T+工作圈T+app如何同步连接T+账套()
- 移动端开发基础13uni-app跨端开发注意事项
- Android Studio用上Visual Studio Android Emulator
- android 全局悬浮窗的使用以及权限
- robotium和appium区别
- Sass嵌套用法详解
- Sass的混合用法详解
- Sass mixin参数
- Sass @media指令用法示例