Yet another command line parsing system
First Mike has linked to a command line parser library for .NET
called Param.NET. Then Roy proposeda better command line parsing class which is
attribute based. So, now's the time to mention a command line parameter
class that worked well for me recently.
I used another arguments parser from Code Project,
"C#/.NET Command
Line Arguments Parser
". I like it because it works like the
ASP.NET querystring parser - it handles the parsing (quoted strings, different
delimiter styles) and exposes a string dictionary with the results.
I use a GetSettings accessor that reads the default from the app.config file,
but allows overrides via command line. I like this approach because settings are
their standard location (app.config), and any config setting can be overriden
via command line without an attribute change and a recompile.
[STAThread]
private static int Main(string[] args)
{
Processor processor1 = new Processor(args);
return processor1.Process();
}
private Arguments arguments;
public Processor(string[] args)
{
this.arguments = new Arguments(args);
}
public Process()
{
Console.WriteLine(this.GetSetting("PreventEvil"));
}
private string GetSetting(string key)
{
string setting = string.Empty;
if (this.arguments[key] != null)
{
setting = this.arguments[key];
}
else
{
setting = ConfigurationSettings.AppSettings.Get(key);
}
if (setting == null)
{
return string.Empty;
}
return setting;
}