南强小屋 Design By 杰米
注入获取
注入获取通过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();
}
有了静态类的属性在在静态类里就可以使用了。
南强小屋 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
南强小屋 Design By 杰米
暂无.net core 静态类获取appsettings的方法的评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。