将数组作为命令行参数传递给 Asp.Net Core
Posted
技术标签:
【中文标题】将数组作为命令行参数传递给 Asp.Net Core【英文标题】:Pass array as a command line argument to Asp.Net Core 【发布时间】:2020-03-18 17:22:58 【问题描述】:需要 托管服务。
添加的提供者
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呢?
【问题讨论】:
【参考方案1】:ASP.NET Core 配置是一组键值对。您显示的 appsettings.json 属性将转换为以下内容:
动作:0 = 动作1 动作:1 = 动作2提供这组相同的键值对作为多个命令行参数以获得所需的结果:
dotnet MyService.dll --actions:0 Action1 --actions:1 Action2
【讨论】:
更多细节来自官方文档:docs.microsoft.com/en-us/dotnet/core/extensions/…以上是关于将数组作为命令行参数传递给 Asp.Net Core的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.Net Core 项目中使用 ADO.Net 将 JSON 类型作为参数传递给 SQL Server 2016 存储过程
我应该如何将多个参数传递给 ASP.Net Web API GET?
模型在使用 C# 将 POST 方法作为参数传递给 ASP.NET MVC 中同一控制器的 GET 方法时获取 NULL