/// <summary> /// Validate args, will throw InvalidOperationException when parsing duplicated args. /// <returns> /// Parse args, will return ArgsParsingResult with error code and trigger reason when parsing undefined args. /// Return IsSuccess true when parsing successfully /// </returns> /// </summary> /// <param name="args">A string array which are need to be parsed</param> public ArgsParsingResult Parse(string[] args) { ValidateArgs(args); var duplicatedArgs = GetDuplicatedArgs(args); if (duplicatedArgs != null) { var result = new ArgsParsingResult(); result.IsSuccess = false; result.Error = new ParsingError(ParsingErrorCode.DuplicateFlagsInArgs, duplicatedArgs); return(result); } return(ParseArgs(args)); }
ArgsParsingResult ParseArgs(string[] args) { var result = new ArgsParsingResult(); var needParseArgs = GetNeedParseArgs(args); foreach (var arg in needParseArgs) { var flagOption = GetFlag(arg.Arg); if (flagOption == null) { result.IsSuccess = false; result.Error = new ParsingError(ParsingErrorCode.FreeValueNotSupported, arg.Trigger); return(result); } result.FlagOptions.Add(flagOption); } result.IsSuccess = true; result.Command = DefaultCommand; return(result); }