.net core 中自带的appsettings.json是自动注入了的,这个文件不用说了
1、appsettings.json下面的appsettings.Development.json和appsettings.Production.json,可以根据不同的环境读取不同的配置文件
/// <summary> /// 获取配置 /// </summary> /// <param name="JsonFileName">json文件路径</param> /// <returns></returns> public static IConfiguration GetConfiguration(string JsonFilePath) { IConfiguration Configuration = new ConfigurationBuilder() .AddJsonFile(JsonFilePath) .Build(); return Configuration; }
public static IConfiguration getConfiguration() { var environment = getEnvironment("ASPNETCORE_ENVIRONMENT"); if (Singleton<IConfiguration>.Instance == null) { IConfiguration configuration = null; if (environment == "Development") { configuration = ConfigService.GetConfiguration("appsettings.Development.json"); } else if (environment == "Production") { configuration = ConfigService.GetConfiguration("appsettings.Production.json"); } Singleton<IConfiguration>.Instance = configuration; } return Singleton<IConfiguration>.Instance; }
这种配置方式,所有的配置信息都放在一起,看起来可能比较臃肿,但是更适应持续部署,直接通过环境变量来判断测试环境还是生产环境,测试和生产都是一套代码适用于k8s
2、其他json配置文件
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostingContext, configBuilder) => { configBuilder .AddJsonFile("Config/Common.json") .AddJsonFile("Config/Ftp.json") .AddJsonFile("Config/Mongo.json") .AddJsonFile("Config/SqlConn.json") .AddJsonFile("Config/Redis.json"); }) .UseServiceProviderFactory(new AutofacServiceProviderFactory()) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>().UseUrls("http://*:8080"); });
这里是将配置文件中的配置信息注入到Configuration中,后面可以直接用,注意下各个文件中的key不要相同就行
每个配置文件都是单一配置,配置结构更清晰,这种方式适合手动发布,测试和生产是两套代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2019-05-17 .net core mvc 实现CORS跨域
2016-05-17 天气api