All Posts assertfail

View the Blog on GitHub wallymathieu

Command line option parsing

24 Apr 2011

NDesk Options
I started writing an argument parser without knowing about:
Where you have the following kind of syntax:

string data = null;
   bool help   = false;
   int verbose = 0;
var p = new OptionSet () {
    { "file=",      v => data = v },
    { "v|verbose",  v => { ++verbose } },
    { "h|?|help",   v => help = v != null },
   List extra = p.Parse (args);

Since this post, there is a new option: Command line in FubuCore.

If you're using powershell it just might be simpler to load your program as an assembly and invoke the classes directly. Looking at stackoverflow there is a command Add-Type. Otherwise you could use standard .net assembly load.

All of the solutions above are not really what I'm after. Thus I've written another argument parser loosely based on SimpleConsole :
I didn't really think views in an console app was that useful. Instead I've tried to do some of the plumbing in order for you to write console applications more like this:
static void Main(string[] args)
   new Build()

There is some simple syntax to extend this. To Set culture, TypeConverter et.c.

So you would invoke the method "Add" on the class "CustomerController" with the arguments id and name:

CustomerConsoleApp.exe Customer Add --id 1234 --name Arne


  • c#
  • cli
  • Comments or errors? Fork post and do a pull request on github