Как я могу получить аргументы командной строки, введенные в IconfigurationBuilder?C#

Место общения программистов C#
Ответить
Anonymous
 Как я могу получить аргументы командной строки, введенные в IconfigurationBuilder?

Сообщение Anonymous »

Я хотел бы перенести args (которые имеют тип string [] ) в мой iConfigurationBuilder , доступный через пакет Microsoft.extensions.hosting nuget, и и Затем возьмите это позже. Я замечаю, что IconfigurationBuilder имеет addCommandline , но я не уверен, где эти аргументы заканчиваются или как я могу получить к ним доступ. В идеале я бы хотел, чтобы они были введены в конструктор класса I, позже определенный в 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();
// Would ideally like args dependency injected in SomeHostedService
}).Build();
}


[*] Как я могу внедрить эти аргументы в конструктор SomehostedService .
Если я хотел явно получить доступ к ним доступ, как я могу их извлечь? Прикреплены ли они к iServiceCollection где -то? string [] , которая соответствует Args , передаваемую в приложение.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;
}
< /code>
Моя точка входа в приложение будет выглядеть как таковая (C# 9): < /p>
using Microsoft.Extensions.DependencyInjection;
using System;

using var host = HostBuilder.BuildHostContext(args);
using var scope = host.Services.CreateScope();
await host.StartAsync().ConfigureAwait(false);


Подробнее здесь: https://stackoverflow.com/questions/697 ... ionbuilder
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»