I have a console application called MyTool.exe
What is the simplest way to collect the named arguments passed to this console applicaiton and then to put them in a Dictionarty<string, string>()
which will have the argument name as the key and the value as the argument?
for example:
MyTool foo=123432 bar=Alora barFoo=45.9
I should be able to obtain a dictionary which will be:
MyArguments["foo"]=123432
MyArguments["bar"]="Alora"
MyArguments["barFoo"]="45.9"
Use this Nuget package
Takes seconds to configure and adds instant professional touch to your application.
// Define a class to receive parsed values
class Options {
[Option('r', "read", Required = true,
HelpText = "Input file to be processed.")]
public string InputFile { get; set; }
[Option('v', "verbose", DefaultValue = true,
HelpText = "Prints all messages to standard output.")]
public bool Verbose { get; set; }
[ParserState]
public IParserState LastParserState { get; set; }
[HelpOption]
public string GetUsage() {
return HelpText.AutoBuild(this,
(HelpText current) => HelpText.DefaultParsingErrorsHandler(this, current));
}
}
// Consume them
static void Main(string[] args) {
var options = new Options();
if (CommandLine.Parser.Default.ParseArguments(args, options)) {
// Values are available here
if (options.Verbose) Console.WriteLine("Filename: {0}", options.InputFile);
}
}