Files
ArgumentsToolkit/ArgumentsToolkit.Core/Attributes/OptionAttribute.cs

50 lines
1.4 KiB
C#

namespace ArgumentsToolkit;
/// <summary>
/// Атрибут для описания параметра командной строки.
/// Позволяет задать имя, короткое имя, описание, обязательность и значение по умолчанию.
/// </summary>
[AttributeUsage(AttributeTargets.Property)]
public class OptionAttribute : Attribute
{
/// <summary>
/// Поолное название для --Name
/// </summary>
public string Name { get; }
/// <summary>
/// Краткое название для -ShortName
/// </summary>
public string? ShortName { get; }
/// <summary>
/// Описание параметра
/// </summary>
public string? Description { get; }
/// <summary>
/// Обязательный параметр
/// </summary>
public bool Required { get; }
/// <summary>
/// Значение по умолчанию
/// </summary>
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;
}
}