将数组作为命令行参数传递给 Asp.Net Core
Pass array as a command line argument to Asp.Net Core
需要将数组作为命令行参数传递给 Asp.Net 核心托管服务。
已添加提供商
config
.AddJsonFile("appsettings.json")
.AddCommandLine(args);
在应用程序的某个地方我有
var actions = _configuration.GetSection("actions").Get<List<string>>();
foreach (var action in actions)
{
Console.WriteLine(action);
}
尝试运行应用喜欢
dotnet MyService.dll --actions Action1,Action2
dotnet MyService.dll --actions [Action1,Action2]
dotnet MyService.dll --actions ["Action1","Action2"]
但是没有结果,actions
是null
当我将 "actions": ["Action1","Action2"]
添加到 appsettings.json 时,绑定工作正常。
如何将数组作为命令行参数传递?
这样可以获取到_configuration.GetValue<string>("actions").Split(",");
,但是如何绑定到list呢?
ASP.NET核心配置是一组键值对。您显示的 appsettings.json 属性 将转换为以下内容:
- 动作:0 = 动作 1
- 动作:1 = 动作 2
提供这组相同的键值对作为多个命令行参数以获得所需的结果:
dotnet MyService.dll --actions:0 Action1 --actions:1 Action2
需要将数组作为命令行参数传递给 Asp.Net 核心托管服务。
已添加提供商
config
.AddJsonFile("appsettings.json")
.AddCommandLine(args);
在应用程序的某个地方我有
var actions = _configuration.GetSection("actions").Get<List<string>>();
foreach (var action in actions)
{
Console.WriteLine(action);
}
尝试运行应用喜欢
dotnet MyService.dll --actions Action1,Action2
dotnet MyService.dll --actions [Action1,Action2]
dotnet MyService.dll --actions ["Action1","Action2"]
但是没有结果,actions
是null
当我将 "actions": ["Action1","Action2"]
添加到 appsettings.json 时,绑定工作正常。
如何将数组作为命令行参数传递?
这样可以获取到_configuration.GetValue<string>("actions").Split(",");
,但是如何绑定到list呢?
ASP.NET核心配置是一组键值对。您显示的 appsettings.json 属性 将转换为以下内容:
- 动作:0 = 动作 1
- 动作:1 = 动作 2
提供这组相同的键值对作为多个命令行参数以获得所需的结果:
dotnet MyService.dll --actions:0 Action1 --actions:1 Action2