Helper class for the parser that stores values into properties and fields of a class.
For a list of all members of this type, see PropertyFieldParserHelper Members.
System.Object
CommandLine.OptParse.PropertyFieldParserHelper
Used to create option definitions from properties and fields of an object. Options are defined using OptDefAttribute, UseNameAsLongOptionAttribute, LongOptionNameAttribute, ShortOptionNameAttribute, DefaultValueAttribute, CategoryAttribute, and DescriptionAttribute attributes.
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)
PropertyFieldParserHelper Members | CommandLine.OptParse Namespace | Parser | ParserFactory | OptDefAttribute | UseNameAsLongOptionAttribute | LongOptionNameAttribute | ShortOptionNameAttribute | DefaultValueAttribute | CategoryAttribute | DescriptionAttribute