private static string ShortOptionUsage(GetOptOption o) { if (o.Short == null) { return(string.Empty); } return(o.IsFlag ? $"{ShortPrefix}{o.Short} | " : $"{ShortPrefix}{o.Short}<{Usage(o.Type)}> | "); }
public static IEnumerable <GetOptOption> GetOptions(object options) { if (options != null) { foreach (var p in options.GetType().GetProperties()) { if (IsOption(p)) { var o = new GetOptOption(options, p); yield return(o); } else if (IsOptionsContainer(p)) { var container = p.GetValue(options); var optionsOfContainer = GetOptions(container).ToList(); foreach (var i in optionsOfContainer) { yield return(i); } } } } }
private static string LongOptionUsage(GetOptOption o) { return(o.IsFlag ? $"{LongPrefix}{o.Long}" : $"{LongPrefix}{o.Long}=<{Usage(o.Type)}>"); }
private static object[] ParseParameters(MethodInfo method, string[] arguments) { return(method.GetParameters() .ZipOrDefault(arguments, (p, v) => GetOptOption.Parse(p.ParameterType, v)) .ToArray()); }