private static List<CommandLineArgument> FindCommandLineArguments(Type t)
{
BindingFlags flags = BindingFlags.Instance | BindingFlags.Public;
var knownAliases = new List<string>();
foreach (var prop in t.GetProperties(flags))
{
// This makes sure that explicit aliases get put into the known aliases before any auto generated aliases
knownAliases.AddRange(prop.Attrs<ArgShortcut>().Select(s => s.Shortcut));
}
var ret = from p in t.GetProperties(flags)
where CommandLineArgument.IsArgument(p)
select CommandLineArgument.Create(p, knownAliases);
return ret.ToList();
}