Canvas.CommandLineParsing.MainParser.Parse C# (CSharp) Метод

Parse() публичный Метод

public Parse ( string args, TextWriter standardWriter, TextWriter errorWriter ) : ParsingResult
args string
standardWriter System.IO.TextWriter
errorWriter System.IO.TextWriter
Результат ParsingResult
        public ParsingResult<IModeLauncher> Parse(string[] args, TextWriter standardWriter, TextWriter errorWriter)
        {
            if (args.Empty() || !_modeParsers.ContainsKey(args[0]))
            {
                return GetMissingModeResult(args, standardWriter, errorWriter);
            }
            var mode = _modeParsers[args[0]];
            var options = new OptionCollection<IModeLauncher> { BaseOptionsParser, mode };
            var result = options.Parse(args.Skip(1));
            ParsingResult<IModeLauncher> failedResult;
            if (!result.RemainingArgs.Any() && HandleBaseOptions(result.Get(BaseOptionsParser).Result, standardWriter, mode))
                return ParsingResult<IModeLauncher>.SuccesfulResult(new NullModeLauncher());

            if (!result.Validate(out failedResult))
            {
                errorWriter.WriteLine(failedResult.ErrorMessage);
                errorWriter.WriteLine();
                ShowHelp(errorWriter, mode);
                return failedResult;
            }
            var runner = result.Get(mode).Result;
            return ParsingResult<IModeLauncher>.SuccesfulResult(new ModeLauncher(runner, args, GetVersion(), mode.Name));
        }

Usage Example

Пример #1
0
 public static int Main(string[] args)
 {
     var modeParser = new MainParser(CanvasVersionInfo.VersionString, CanvasVersionInfo.CopyrightString,
         new GermlineWgsModeParser("Germline-WGS", "CNV calling of a germline sample from whole genome sequencing data"),
         new SomaticEnrichmentModeParser("Somatic-Enrichment", "CNV calling of a somatic sample from targeted sequencing data"),
         new TumorNormalWgsModeParser("Somatic-WGS", "CNV calling of a somatic sample from whole genome sequencing data"),
         new TumorNormalEnrichmentModeParser("Tumor-normal-enrichment", "CNV calling of a tumor/normal pair from targeted sequencing data"));
     var result = modeParser.Parse(args, Console.Out, Console.Error);
     if (!result.Success)
         return -1;
     return result.Result.Launch();
 }
All Usage Examples Of Canvas.CommandLineParsing.MainParser::Parse