C# 如何基于CommandLineUtils运行时设置配置DI容器?

C# 如何基于CommandLineUtils运行时设置配置DI容器?,c#,.net-core,command-line-arguments,commandlineutils,C#,.net Core,Command Line Arguments,Commandlineutils,我正在将命令行应用程序迁移到用于命令行处理(以前称为Microsoft.Extensions.CommandLineUtils)。这非常好(尽管库非常固执己见),但我正在努力处理那些会影响我注入容器的内容/方式的选项,即如何配置记录器 由于这是一个dotnetglobal工具,所以我试图非常紧密地遵循命令行在选项方面的功能 我的命令库中有这个: [Option(CommandOptionType.SingleValue, ShortName = "v", LongName = "verbos

我正在将命令行应用程序迁移到用于命令行处理(以前称为
Microsoft.Extensions.CommandLineUtils
)。这非常好(尽管库非常固执己见),但我正在努力处理那些会影响我注入容器的内容/方式的选项,即如何配置记录器

由于这是一个
dotnet
global工具,所以我试图非常紧密地遵循命令行在选项方面的功能

我的
命令库中有这个:

[Option(CommandOptionType.SingleValue,
  ShortName = "v", LongName = "verbosity",
  Description = "Sets the verbosity level of the command. Allowed values are quiet, minimal, normal, detailed.")]
protected LogLevel Verbosity { get; } = LogLevel.Normal;
现在,在前面,我将首先解析命令行,然后在此基础上构建容器,然后启动命令运行

// settings coming from old parsing logic
var container = ContainerRegistration.Init(settings);
var app = new CommandLineApplication<Program> {ThrowOnUnexpectedArgument = false};
app.Conventions.UseDefaultConventions().UseConstructorInjection(container);
return app.Execute(args);
//来自旧解析逻辑的设置
var container=ContainerRegistration.Init(设置);
var app=new CommandLineApplication{ThrowOnUnexpectedArgument=false};
app.Conventions.UseDefaultConventions().UseConstructorInjection(容器);
返回app.Execute(args);
对于大多数情况,我可以将其反转(正如
CommandLineUtils
所期望的那样-因此首先构建IoC容器,然后调用
。执行
并解析命令行),但我不知道如何配置日志记录


你知道如何基于
CommandLineUtils
parse结果注册IoC对象吗?或者是
dotnet
应用程序的例子?

你能分享一下你想要的
程序
构造函数和/或子命令类型吗?