- 
                Notifications
    You must be signed in to change notification settings 
- Fork 287
Mapping Properties To Options
        gsscoder edited this page May 21, 2012 
        ·
        25 revisions
      
    You can map almost any data type to command line option.
Scalar values are mapped using OptionAttribute type. Let's define a string option.
class Options
{
  [Option("p", "person-to-greet", DefaultValue="World")]
  public string PersonToGreet { get; set; }
}Everything passed to -p or --person-to-great option will be loaded into Options::PersonToGreat instance property. This option is not required (default Required = false), so if not specified the property will contain the string "World".
Both app -p Jhonny and app --person-to-great Jhonny will be accepted.
You can map without problems also enum and nullable values:
enum GreetType
{
  Hello,
  Bye
  Regards
}
class Options
{
  [Option("g", "greet-type")]
  public GreetType SpecifiedGreetType { get; set; }
  [Option("t", "times-to-greet")]
  public int? TimesToGreet { get; set; }
}[to complete...]