namespace ArgumentsToolkit;
///
/// Атрибут для описания параметра командной строки.
/// Позволяет задать имя, короткое имя, описание, обязательность и значение по умолчанию.
///
[AttributeUsage(AttributeTargets.Property)]
public class OptionAttribute : Attribute
{
///
/// Поолное название для --Name
///
public string Name { get; }
///
/// Краткое название для -ShortName
///
public string? ShortName { get; }
///
/// Описание параметра
///
public string? Description { get; }
///
/// Обязательный параметр
///
public bool Required { get; }
///
/// Значение по умолчанию
///
public object? DefaultValue { get; }
public OptionAttribute(
string name,
string? shortName = null,
string? description = null,
bool required = false,
object? defaultValue = null
)
{
Name = name ?? throw new ArgumentNullException(nameof(name));
ShortName = shortName;
Description = description;
Required = required;
DefaultValue = defaultValue;
}
}