Parsing Command-Line Arguments with InstallContext

G

Guest

I'm using the InstallContext class to parse the command-line arguments of a console application. The arguments are in the form of "-file=myFile.txt -flag", and the InstallContext object gives me what I need through the Parameters and IsParameterTrue properties.

However, I can't find any documentation or code samples that confirm that this is an acceptable use of the InstallContext class. I understand the need to use Regex or some other means to parse more complex command-line arguments, but I'm surprised to find no mention of this simple parsing alternative. Is there anything wrong with using InstallContext for this purpose

using System;
using System.Configuration.Install;
using System.Collections.Specialized;

class MyClass
{
public static void Main(string[] args)
{
InstallContext context = new InstallContext(null, args);
StringDictionary parameters = context.Parameters;

string file = parameters["file"];
bool flag = context.IsParameterTrue("flag");

Console.WriteLine("file = {0}", file);
Console.WriteLine("flag = {0}", flag);
}
}
 
C

Chris R. Timmons

I'm using the InstallContext class to parse the command-line
arguments of a console application. The arguments are in the
form of "-file=myFile.txt -flag", and the InstallContext object
gives me what I need through the Parameters and IsParameterTrue
properties.

However, I can't find any documentation or code samples that
confirm that this is an acceptable use of the InstallContext
class. I understand the need to use Regex or some other means to
parse more complex command-line arguments, but I'm surprised to
find no mention of this simple parsing alternative. Is there
anything wrong with using InstallContext for this purpose?

I looked at the underlying source code for InstallContext with
Reflector (http://www.aisto.com/roeder/DotNet/). As far as I can
see, InstallContext doesn't produce any side effects, so it looks
safe to use.

Thanks for bringing this class to light. With over 5000 classes in
the framework, it's too easy to overlook a gem like this.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top