You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core如何通过命令行传递配置段(无需修改代码)

解决方案:通过命令行传递数据库配置(无需修改现有代码)

这事儿其实很简单,.NET Core的配置系统天生支持命令行参数覆盖配置文件,而且优先级比appsettings.json高,完全不用动你现有的任何代码。

你只需要在启动项目的时候,按照配置层级的格式传入命令行参数就行,具体格式是用冒号:(或者双下划线__,Windows命令行下有时候冒号会有兼容性问题)来表示嵌套的配置节点。

具体命令示例

1. 使用dotnet run启动项目时:

dotnet run --DataSource:ConnectionString="mongodb://your-mongo-server:27017" --DataSource:DatabaseName="YourCustomDB" --DataSource:CollectionName="YourApiLogCollection"

2. 运行发布后的可执行文件时:

YourProjectName.exe --DataSource:ConnectionString="mongodb://your-mongo-server:27017" --DataSource:DatabaseName="YourCustomDB" --DataSource:CollectionName="YourApiLogCollection"

为什么这能生效?

你的现有代码是通过builder.Configuration.GetSection("DataSource")来绑定DatabaseSettings类的,而.NET Core的配置系统会自动把命令行中传入的这些参数合并到配置体系里,并且命令行参数的优先级高于appsettings.json。也就是说,即使appsettings.json里还有原来的DataSource配置,命令行传入的值也会覆盖它;就算你把appsettings里的这段配置删掉,命令行传入的参数依然能被正确识别并绑定到DatabaseSettings。

这样一来,LogService里通过IOptions<DatabaseSettings>获取到的配置就是你命令行传入的值,完全不用修改任何现有代码,完美符合你的需求。

内容的提问来源于stack exchange,提问作者user5466135

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 17:06:50