Добавьте файлы проекта.

This commit is contained in:
2025-11-27 09:10:58 +03:00
parent 730fd30d87
commit c1f50fcca0
32 changed files with 1154 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
using System.Reflection;
namespace ArgumentsToolkit.Help;
/// <summary>
/// Сборщик информации о параметрах из модели Options.
/// </summary>
public static class HelpCollector
{
/// <summary>
/// Собирает метаданные о параметрах из указанной модели Options.
/// </summary>
public static HelpModel Collect<T>()
{
var model = new HelpModel();
var props = typeof(T).GetProperties();
foreach (var prop in props)
{
var opt = prop.GetCustomAttribute<OptionAttribute>();
if (opt == null) continue;
model.Entries.Add(new HelpEntry
{
Name = opt.Name,
ShortName = opt.ShortName,
Description = opt.Description,
TypeName = prop.PropertyType.Name,
Required = opt.Required,
DefaultValue = opt.DefaultValue
});
}
return model;
}
}