Class that parses the command line options. Use the ParserFactory to construct an instance of a parser
For a list of all members of this type, see Parser Members.
System.Object
CommandLine.OptParse.Parser
Class that
Example class implementing options via attributes:
// Example class defining properties
class Properties
{
#region Enumerations
internal enum ExamplePropertyEnum
{
First,
Second
}
#endregion Enumerations
#region Members
private ExamplePropertyEnum _exampleEnumProp;
#endregion Members
#region Accessed by code properties
// Cannot be used by the parser easily, but can be used
// by code
public ExamplePropertyEnum ExampleEnumProp
{
get { return _exampleEnumProp; }
set { _exampleEnumProp = value; }
}
#endregion Accessed by code properties
#region Options
// Cannot be used by the parser easily, but can be used
// by code
// The EditorBrowsableAttribute is used to hide this
// property from code
[OptDef(OptValType.Flag)]
[LongOptionName("example-enum-prop")]
[UseNameAsLongOption(false)]
[Description("Show how to perform complex type option parsing")]
[EditorBrowsable(EditorBrowsableState.Never)]
public string ExampleEnumPropAsString
{
get { return _exampleEnumProp.ToString(); }
set
{
switch (value.ToLower())
{
case "first": _exampleEnumProp = ExamplePropertyEnum.First; break;
case "second": _exampleEnumProp = ExamplePropertyEnum.Second; break;
default:
throw new ArgumentException(
"Invalid value for the example-enum-prop option");
}
}
}
// Example of how to reverse flag-option values
[OptDef(OptValType.Flag)]
[LongOptionName("no-debug")]
[UseNameAsLongOption(false)]
[Description("Disable debug output")]
[EditorBrowsable(EditorBrowsableState.Never)]
public bool NoDebug
{
get { return !this.Debug; }
set { this.Debug = !value; }
}
[ShortOptionName('b')]
[OptDef(OptValType.Flag)]
[LongOptionName("debug")]
[UseNameAsLongOption(false)]
[Description("Enable debug output")]
public bool Debug = false;
[OptDef(OptValType.ValueReq)]
[ShortOptionName('d')]
[LongOptionName("directory")]
[UseNameAsLongOption(false)]
[Description("Output directory")]
[DefaultValue(".")]
public string Directory = ".";
[OptDef(OptValType.ValueOpt)]
[ShortOptionName('f')]
[LongOptionName("file")]
[UseNameAsLongOption(false)]
[Description("Input file")]
public string File = null;
[OptDef(OptValType.IncrementalFlag)]
[ShortOptionName('v')]
[LongOptionName("verbose")]
[UseNameAsLongOption(false)]
[Description("Set level of vebosity for debug printing")]
public int Verbose = 0;
[OptDef(OptValType.MultValue, ValueType=typeof(string))]
[ShortOptionName('s')]
[LongOptionName("strings")]
[UseNameAsLongOption(false)]
[Description("Test option that takes multiple values")]
public StringCollection Strings = new StringCollection();
#endregion Options
}
Namespace: CommandLine.OptParse
Assembly: CSharpOptParse (in CSharpOptParse.dll)
Parser Members | CommandLine.OptParse Namespace | UsageBuilder | PropertyFieldParserHelper | DictionaryParserHelper | IOptionResults | ParserFactory