private void ProcessShortArguments(MemberInfo info, ArgumentHandler ai) { foreach (ShortArgument sa in info.GetCustomAttributes(typeof(ShortArgument), true)) { var an = sa.Arg; if (shorts.ContainsKey(an)) { throw new ProgrammingError(String.Format("Duplicate short argument {0}", an)); } shorts.Add(an, ai); } }
internal RequiredOptionMissingException(ArgumentHandler aOption) : this(String.Format(CultureInfo.CurrentCulture, "Required option {0} wasn't specified", aOption.Name.ToLower())) { }
private void ProcessAliases(MemberInfo info, ArgumentHandler ai) { foreach (ArgumentAlias alias in info.GetCustomAttributes(typeof(ArgumentAlias), true)) { var an = alias.Alias; if (opts.CaseType == ArgumentCaseType.Insensitive || opts.CaseType == ArgumentCaseType.OnlyLower) { an = an.ToLower(); } if (longs.ContainsKey(an)) { throw new ProgrammingError(String.Format("Duplicate alias argument {0}", an)); } longs.Add(an, ai); } foreach (ShortArgumentAlias sa in info.GetCustomAttributes(typeof(ShortArgumentAlias), true)) { var an = sa.Alias; if (shorts.ContainsKey(an)) { throw new ProgrammingError(String.Format("Duplicate short argument {0}", an)); } shorts.Add(an, ai); } }
private static void UpdateHandler(ArgumentHandler handler, string value, string arg) { try { handler.Assign(value); } catch (ArgumentException ex) { throw new ProgrammingError(ex.Message); } catch (NotSupportedException ex) { throw new InvalidValueException(String.Format(CultureInfo.CurrentCulture, "Wrong value type for argument \"{0}\": {1}", arg, ex.Message)); } catch (GetOptException) { throw; } catch (TargetInvocationException ex) { if (ex.InnerException is GetOptException) { throw ex.InnerException; } if (ex.InnerException is NotSupportedException) { throw new InvalidValueException(String.Format(CultureInfo.CurrentCulture, "Wrong value type for argument \"{0}\": {1}", arg, ex.Message)); } throw new ProgrammingError(ex.Message); } catch (Exception ex) { throw new ProgrammingError(ex.Message); } }