Добавить общий обработчик опции в команде Root/Merdmediate в дереве ⇐ C#

Место общения программистов C#
Anonymous
Добавить общий обработчик опции в команде Root/Merdmediate в дереве

Сообщение Anonymous »

Я пытаюсь использовать пакет System.commandline для предоставления приложения консоли C# .Net8 иерархическим CLI на основе команд. />

Код: Выделить всё

var leaf = new Command("leaf", "A command that does some stuff");
var root = new RootCommand("The root command") { leaf };

var globalOption = new Option("-g", "A global option");
root.AddGlobalOption(globalOption);

root.SetHandler(global => Console.WriteLine($"Set up things using the global option value {global}"), globalOption);

leaf.SetHandler(() => Console.WriteLine($"Run the actual command after the global setup has completed"));
root.Invoke(args);
По сути, я хочу факторизировать обработку глобальных опций в корневых или промежуточных узлах иерархии команд, чтобы я «не повторяю ваш», - сказал обработка в каждой отдельной команде листа. /> Я надеялся, что обработчик корня будет стрелять до того, как это сделает лист, и, в целом, настройки обработчиков на промежуточных уровнях дерева команд было бы достаточно, чтобы выполнить общие операции настройки с глобальными флагами (например, установить уровень условно -регистрации). < /p>
Я что -то не хватает? Я был бы удивлен, если бы не было способа достичь этого, но, поскольку обработчики команд, кажется, не являются ответом, который я на самом деле не знаю, куда еще посмотреть (я без успеха исследовал связывания). Или это то, что не поддерживается («еще» или «вообще»), возможно, потому, что LIB все еще находится в бета -версии и не дает (уже) целые функции?


Подробнее здесь: https://stackoverflow.com/questions/796 ... nd-in-tree

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