.net core 使用带有IdentityModel.AspNetCore的.net Core控制台应用程序为类插入参数

.net core 使用带有IdentityModel.AspNetCore的.net Core控制台应用程序为类插入参数,.net-core,dependency-injection,console-application,asp.net-core-3.1,identitymodel,.net Core,Dependency Injection,Console Application,Asp.net Core 3.1,Identitymodel,我正在使用.netcore控制台客户端应用程序,为此调用一个基于rest的应用程序,我正在使用IdentityModel.AspNetCore包 所以我有服务类作为后备服务 ''' public class TestService:BackgroungService { private readonly HttpClientFactory _factory; private readonly CustomLogger _looger; private readonly AppSe

我正在使用.netcore控制台客户端应用程序,为此调用一个基于rest的应用程序,我正在使用IdentityModel.AspNetCore包

所以我有服务类作为后备服务

 '''

public class TestService:BackgroungService
{
  private readonly HttpClientFactory _factory;
  private readonly CustomLogger _looger;
  private readonly AppSetting _setting;

  public TestService(IHttpClientFactory factory,CustomLogger logger,AppSetting setting,Someother Class)
  {
   this._setting =setting;
   this._logger=logger;
   this._factory=factory;
   }
  protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
           // Some code
  }
}
public class program
{
   public static void Main(string[] args)
        {
          
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args)
        {
           
            var host = Host.CreateDefaultBuilder(args)
                
                .ConfigureServices((hostContext, services) =>
                {
                    services.AddAccessTokenManagement(options =>
                    {
                        options.Client.Clients.Add("identityserver", new ClientCredentialsTokenRequest
                        {
                            Address = url,
                            ClientId = clientid,
                            ClientSecret = secret,
                           
                        });
                    });
                 
                    services.AddClientAccessTokenClient("client", configureClient: client =>
                    {
                        client.BaseAddress = new Uri(url);
                     
                        
                    });
                    // How to add other parameter ??
                    services.AddHostedService<TestService>();
                });

            return host;
        }

}

'''
“”
公共类TestService:BackgroundService
{
私有只读HttpClientFactory\u工厂;
私有只读自定义记录器_looger;
私有只读应用设置_设置;
公共测试服务(IHttpClientFactory、CustomLogger、AppSetting设置、其他类)
{
此设置=设置;
这个。_logger=记录器;
这个工厂=工厂;
}
受保护的覆盖异步任务ExecuteAsync(CancellationToken stoppingToken)
{
//一些代码
}
}
公共课程
{
公共静态void Main(字符串[]args)
{
CreateHostBuilder(args.Build().Run();
}
公共静态IHostBuilder CreateHostBuilder(字符串[]args)
{
var host=host.CreateDefaultBuilder(args)
.ConfigureServices((主机上下文,服务)=>
{
services.AddAccessTokenManagement(选项=>
{
options.Client.Clients.Add(“identityserver”,new ClientCredentialsTokenRequest
{
地址=url,
ClientId=ClientId,
ClientSecret=secret,
});
});
services.AddClientAccessTokenClient(“客户端”,configureClient:client=>
{
client.BaseAddress=新Uri(url);
});
//如何添加其他参数??
services.AddHostedService();
});
返回主机;
}
}
'''
如何初始化其他参数(自定义记录器、SomeOtherClass)