簡體   English   中英

獲取 .NET Core Worker 服務 CommandLineConfigurationProvider Arguments

[英]Get .NET Core Worker Service CommandLineConfigurationProvider Arguments

我創建了一個 .NET Core Worker Service 應用程序,需要將命令行 arguments 傳遞到應用程序中。 通過 IConfiguration 配置 > 提供程序 > CommandLineConfigurationProvider 進行調試時,我可以看到 arguments,但不知道如何對其進行編碼以獲得 arguments。

任何幫助表示贊賞。

您可以使用: https://docs.microsoft.com/en-us/dotnet/api/system.environment.getcommandlineargs?view=netcore-3.1

獲取命令行 arguments。

環境是 static,因此您可以從任何地方訪問它。

Environment.GetCommandLineArgs 

如果您有一個提供IConfiguration的 object config ,您只需使用config.GetValue<string>("myvaluename" )。

例如:

public static IHostBuilder CreateHostBuilder(string[] args)
{
    return new HostBuilder()
        .ConfigureAppConfiguration((context, cfg) =>
        {
            cfg.AddCommandLine(args);
        });
}

要獲取配置:

static void Main(string[] args)
{
    using var host = CreateHostBuilder(args).Build();
    var config = host.Services.GetRequiredService<IConfiguration>();
    var myvalue = config.GetValue<string>("myvalue");
    // .... myvalue may be null if not specified
}

最后,你像這樣調用你的程序:

myprogram.exe --myvalue abcd

CommandLineConfigurationProvider非常基礎,因此它不支持復雜的模式,例如二元選項(存在/不存在)等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM