如何检索注入IconFigurationBuilder的命令行参数? 我想通过microsoft.extensions.hosting nuget软件包将Args(类型字符串[])传递给我的IconFigurationBuilder,然后稍后将其检索。我注意到

问题描述 投票:0回答:1
)传递给我的

IConfigurationBuilder

,然后以后再检索。我注意到
Microsoft.Extensions.Hosting
IConfigurationBuilder
,但是我不确定这些
AddCommandLine
最终到哪里,或者如何访问它们。理想情况下,我希望它们的依赖性注入后来在
args
中定义的类的构造函数,如下所示(
ConfigureServices
)。
,例如,我有以下代码。
SomeHostedService

我如何依赖性将这些注入
public static class HostBuilder { public static IHost BuildHostContext(string[] args) => Host.CreateDefaultBuilder(args).ConfigureHostConfiguration(c => { c.AddCommandLine(args); // Where can I access args later on? }).ConfigureServices((context, services) => { // Add some services... services.AddHostedService<SomeHostedService>(); // Would ideally like args dependency injected in SomeHostedService }).Build(); }

的构造函数。

如果我想明确获取它们,我该如何检索它们?它们是否依附在某个地方?

    eDit
  1. args
    的构造函数应接收到与
    SomeHostedService
    传递到应用程序的
  2. IServiceCollection
  3. 相对应的
    SomeHostedService
  4. string[]

我对应用程序的入口点看起来像这样(C#9): args

    
要访问配置提供商,请在您的任何依赖注入类别中包括构造函数中的ICONFIGURATION。
public class SomeHostedService
{
   public SomeHostedService(string[] files)
   {
      _files = files;
   }

   public void ReadFiles()
   {
      foreach (var file in _files)
         DoSomething(file);
   }
   
   private void DoSomething(string filename)
   {
       // Do something...
   }

   private readonly string[] _files;
}

要将您的参数绑定到模型,请参见Microsoft Learn上的本文:
Https://learn.microsoft.com/en-us/dotnet/standard/commandline/model-binding-
    

您始终可以通过
environment.getCommandlineargs()访问命令行参数。
    
c# dependency-injection configuration command-line-arguments
1个回答
1
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.