Рубрики
Технологии

Всем привет! Я ранее писал о своей библиотеке ArgsToConfig…

Всем привет!

Я ранее писал о своей библиотеке ArgsToConfig для C#. Напомню, что она позволяет преобразовать входящие в консольное приложение аргументы в пользовательский класс согласно заданным правилам через атрибуты. Всего 22 атрибута, покрывающие, пожалуй, все возможные случае (и даже больше). Из коробки поддерживает коллекции, кортежи и не базовые типы, вроде TimeStamp или пользовательские.

Вот один из примеров (все примеры можно посмотреть в Readme и тестах):

// Ожидаемая команда:
//myapp -v --output ./bin --format json

// Класс конфигурации:
class AppConfig
{
    [ArgsHasParameter("-v|--verbose")]
    public bool Verbose { get; set; }

    [ArgsValueFor("-o|--output")]
    [MaxLength(100)]
    public string? OutputPath { get; set; }

    [ArgsValueFor("--format")]
    public string? Format { get; set; }
}

// Вызов в коде:
var (config, errors, position) = ArgumentsReader.ToObject<AppConfig>(args);

// Результат:
// config.Verbose    → true
// config.OutputPath → "./bin"    <- была проверена максимальная длина строки
// config.Format     → "json"

У библиотеки большое обновление!

Теперь добавлена поддержка AOT. Для этого нужно установить вторую библиотеку, которая подключает эту возможность: Mansiper.ArgsToConfig.Aot.

Надеюсь, эти библиотеки станут вам по-настоящему полезны в ваших проектах.