gpt4 book ai didi

c# - .NET 核心将命令行参数从 Program.cs 传递到 Startup.cs

转载 作者:太空狗 更新时间:2023-10-29 17:38:58 25 4
gpt4 key购买 nike

我正在尝试配置 kestrel,以便当它处于原始模式时在特定端口上运行。但是这样做似乎 launchsettings.json 需要传递命令行参数才能这样做,因为没有直接选项并且它总是在端口 5000 上运行,如果您有需要运行的 api 和网站,这显然会发生冲突.

所以我将 CommandLine 包添加到我的站点,您确实可以在 startup.cs 文件中使用 builder.AddCommandLine()。

问题是如何将 args 从 program.cs 获取到 Startup.cs 或者查找它们而不是静态变量。

如果您无法获取参数,那么扩展方法就毫无意义了。

有什么更好的方法吗?

最佳答案

一个简单的解决方案是通过 Environment.GetCommandLineArgs 访问命令行参数方法。

您只需要确保删除第一个参数,即可执行文件名称:

public class Startup
{
public Startup(IHostingEnvironment env)
{
var args = Environment.GetCommandLineArgs().Skip(1).ToArray();
var builder = new ConfigurationBuilder();
builder.AddCommandLine(args);

Configuration = builder.Build();
}
}

关于c# - .NET 核心将命令行参数从 Program.cs 传递到 Startup.cs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41290566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com