Добавьте файлы проекта.
This commit is contained in:
49
ArgumentsToolkit.Core/Attributes/OptionAttribute.cs
Normal file
49
ArgumentsToolkit.Core/Attributes/OptionAttribute.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
15
ArgumentsToolkit.Core/Attributes/OptionConverterAttribute.cs
Normal file
15
ArgumentsToolkit.Core/Attributes/OptionConverterAttribute.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
namespace ArgumentsToolkit;
|
||||
|
||||
/// <summary>
|
||||
/// Атрибут для указания кастомного конвертера для свойства.
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
|
||||
public sealed class OptionConverterAttribute : Attribute
|
||||
{
|
||||
public Type ConverterType { get; }
|
||||
|
||||
public OptionConverterAttribute(Type converterType)
|
||||
{
|
||||
ConverterType = converterType;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user