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

ASP.NET Core MVC 2.1中CreateDefaultBuilder方法期望接收哪些参数?

关于ASP.NET Core MVC 2.1中CreateDefaultBuilder(string[] args)的参数说明

嘿,我来帮你搞清楚这个问题!你提到的CreateDefaultBuilder(string[] args)方法里的args参数,其实是程序启动时接收的命令行参数,不是随便传个普通字符串就行的,它主要用来让你通过命令行配置ASP.NET Core应用的运行参数。

为什么传"Hello""World"没用?

这些普通字符串不属于ASP.NET Core框架默认识别的命令行配置开关,框架不会对它们做任何特殊处理,所以你传了也不会起到预期的配置作用。

哪些是合理的参数?

这些参数通常是带有特定格式的配置项,框架会自动解析并应用到应用的配置中,举几个常见的例子:

  • 指定运行环境:当你在命令行执行dotnet run --environment Development时,args数组会是["--environment", "Development"],框架会用这个参数设置应用的运行环境(开发/生产/staging等)
  • 指定监听地址和端口:执行dotnet run --urls=http://localhost:5001;https://localhost:5002,args就是["--urls=http://localhost:5001;https://localhost:5002"],用来覆盖默认的监听端口
  • 自定义配置项:如果你的应用有自定义配置,比如appsettings.json里有MyApp:ApiKey,你可以通过命令行传入dotnet run --MyApp:ApiKey=abc123,框架会把这个值加入配置系统,你可以在代码里通过IConfiguration读取

如何自定义处理这些参数?

如果你想自己处理非框架默认的参数,也可以在代码里手动解析args数组,或者利用ASP.NET Core的配置系统——因为CreateDefaultBuilder已经自动把命令行参数添加为配置源之一,你可以直接通过Configuration读取任意传入的参数值。

比如在Program.cs里:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>();

之后在Startup里注入IConfiguration,就可以读取args里的自定义参数了:

public class Startup
{
    public IConfiguration Configuration { get; }

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public void ConfigureServices(IServiceCollection services)
    {
        // 读取自定义参数
        string customArg = Configuration["MyCustomArg"];
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:34:37