Поддерживает ли CommandLine.Parser несколько вариантов действия? - PullRequest
0 голосов
/ 07 апреля 2020

Как я могу поддержать это, используя CommandLine.Parser ?

program.exe -s file1 -t file2 -t file3

1 Ответ

3 голосов
/ 07 апреля 2020

Да . Это возможно с IEnumerable:

class Program
{
    static void Main(string[] args)
    {
        args = new[] { "-s", "sourceFile", "-t", "targetFile1", "targetFile2" };

        Parser.Default.ParseArguments<MyOptions>(args).WithParsed(o =>
        {
            foreach (var target in o.Targets)
            {
                Console.WriteLine(target);
            }
        });

        Console.ReadKey();
    }
}

internal class MyOptions
{
    [Option('s')]
    public string Source { get; set; }

    [Option('t')]
    public IEnumerable<string> Targets { get; set; }
}

Круто, вы даже можете использовать FileInfo и DirectoryInfo с атрибутом CommandLine.Option.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...