public static Options ParseOptions(string[] args) { var options = new Options(); CommandLine.Parser.Default.ParseArgumentsStrict(args, options); if (options.InputNumber > 0 || !string.IsNullOrWhiteSpace(options.InputFile) || options.UseInteractiveMode()) { return options; } Console.Error.Write(CommandLine.Text.HelpText.AutoBuild(options)); throw new ArgumentException("Invalid paramater set", "args"); }
public static IInputHandler GetInputHandler(Options options) { if (options.UseInteractiveMode()) { return new ConsoleIOHandler(); } if (options.InputNumber > 0) { return new GenericIOHandler { InputHandler = () => options.InputNumber }; } switch (options.InputFileType) { default: case Options.FileType.Undefined: case Options.FileType.PlainText: return new TextFileIOHandler(options.InputFile); case Options.FileType.Xml: return new XmlIOHandler(options.InputFile); } }