-
Notifications
You must be signed in to change notification settings - Fork 9
Configuration
Matthias Beerens edited this page Nov 5, 2019
·
4 revisions
There are two ways of configuring the options.
using MatthiWare.CommandLine;
static int Main(string[] args)
{
var parser = new CommandLineParser<OptionsModel>();
parser.Configure(opt => opt.Message)
.Name("m", "message")
.Required();
parser.Configure(opt => opt.Port)
.Name("p", "port")
.Default(8080);
var result = parser.Parse(args);
if (result.HasErrors)
{
Console.Error.WriteLine(result.Error);
Console.ReadKey();
return -1;
}
var options = result.Result;
Console.WriteLine($"Message: {options.Message}");
Console.WriteLine($"Port: {options.Port}");
Console.ReadKey();
return 0;
}
public class OptionsModel
{
public string Message { get; set; } // Mandatory
public int Port { get; set; } // Optional
}
using MatthiWare.CommandLine;
static int Main(string[] args)
{
var parser = new CommandLineParser<OptionsModel>();
var result = parser.Parse(args);
if (result.HasErrors)
{
Console.Error.WriteLine(result.Error);
Console.ReadKey();
return -1;
}
var options = result.Result;
Console.WriteLine($"Message: {options.Message}");
Console.WriteLine($"Port: {options.Port}");
Console.ReadKey();
return 0;
}
public class OptionsModel
{
[Required, Name("m", "message")]
public string Message { get; set; } // Mandatory
[Name("p", "port"), DefaultValue(8080)]
public int Port { get; set; } // Optional
}
Input:
> Example.exe -m "My Message" -p 1234
Output:
Message: My Message
Port: 1234
Fluent API will overwrite attributes.