将命令行参数传递给ASP.NET核心中的Startup类

编程入门 行业动态 更新时间:2024-10-26 05:21:34
本文介绍了将命令行参数传递给ASP.NET核心中的Startup类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我通过命令行传入了参数

private static int Main(string[] args) { const string PORT = "12345" ; var listeningUrl = $"localhost:{PORT}"; var builder = new WebHostBuilder() .UseStartup<Startup>() .UseKestrel() .UseUrls(listeningUrl); var host = builder.Build(); WriteLine($"Running on {PORT}"); host.Run(); return 0; } 其中一个参数是日志记录输出目录。如何将此值放入Startup类中,以便在收到请求时可以写出此目录?

我希望避免使用静态类。提供价值的服务是正确的方式吗?如果是,我如何将服务注入到我的中间件中?

推荐答案

您应该能够使用AddCommandLine()扩展。首先安装Nuget包Microsoft.Extensions.Configuration.CommandLine并确保您拥有正确的导入:

using Microsoft.Extensions.Configuration;

现在更新您的Main方法以包括新配置:

var config = new ConfigurationBuilder() .AddJsonFile("hosting.json", optional: true) //this is not needed, but could be useful .AddCommandLine(args) .Build(); var builder = new WebHostBuilder() .UseConfiguration(config) //<-- Add this .UseStartup<Startup>() .UseKestrel() .UseUrls(listeningUrl);

现在将命令行选项视为配置:

dotnet run /MySetting:SomeValue=123

并读入代码:

var someValue = Configuration.GetValue<int>("MySetting:SomeValue");

更多推荐

将命令行参数传递给ASP.NET核心中的Startup类

本文发布于:2023-11-14 14:04:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1587414.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:命令行   核心   参数   ASP   NET

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!