(一).net core系统初始化配置的获取

在.net core里面已经没有web.confg这个文件了,配置内容都放在了appsettings.json里面

如果我们要方便在其他地方随时方便快捷的拿到配置节点里面的值怎么办呢?

(一)获取json的单个值,然后逐一的对静态对象各个属性赋值

1:可以定义一个静态类

public class CommonP
{
public static string ss { get; set; }
public static string yy { get; set; }
}

2:在Startup.cs实例化成员变量Configuration = configuration,然后用Configuration.GetSection获取,或者直接configuration["Logging:LogLevel:Default"]的方式获取,然后将值赋值给对应静态类的对应属性,方便随时获取使用

public Startup(IConfiguration configuration)
{
//直接configuration获取
CommonP.ss = configuration["Logging:LogLevel:Default"];
//外部参数_Configuration获取
Configuration = configuration;
CommonP.yy= Configuration.GetSection("Logging:LogLevel:Microsoft").Value;
}

public IConfiguration Configuration { get; }

如appsettings.json的节点如下

{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}

 (二)直接将json字符串转静态对象,供其他地方任意调用

1:定义对象

public class Class1
{
public string Class1Name { get; set; }
public string Class1No { get; set; }
}

public class Class2
{
public string Class2Name { get; set; }
public string Class2No { get; set; }
}

2:定义装所有对象的静态get,set方法,方便获取需要的各个类的熟悉值

public class Appsetting
{
public static Class1 class1 { get; set; }
public static Class2 class2 { get; set; }
public static void Inint(IServiceCollection services, IConfiguration configuration)
{
services.Configure<Class1>(configuration.GetSection("c1"));
services.Configure<Class2>(configuration.GetSection("c2"));
var provider = services.BuildServiceProvider();
class1=provider.GetRequiredService<IOptions<Class1>>().Value ?? new Class1();
class2 = provider.GetRequiredService<IOptions<Class2>>().Value ?? new Class2();
}
}

3:在Startup里面的ConfigureServices方法里面调用初始化对象的方法:

Appsetting.Inint(services, Configuration);

4:其他地方就可以直接取对象,获取对象里面的值

Class1 class1= Appsetting.class1;

posted @   yingxianqi  阅读(363)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示