50 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|