« Command Line Parser Library » : différence entre les versions

De Banane Atomic
Aller à la navigationAller à la recherche
Ligne 8 : Ligne 8 :
class Options
class Options
{
{
     [Usage(ApplicationAlias = "ExportRates")]
     [Usage(ApplicationAlias = "My Application")]
     public static IEnumerable<Example> Examples => new List<Example>()
     public static IEnumerable<Example> Examples => new List<Example>()
     {
     {

Version du 26 mars 2020 à 16:04

Documentation

Exemple

Cs.svg
// créer une classe dont l'instance sera passée à la méthode ParseArguments
class Options
{
    [Usage(ApplicationAlias = "My Application")]
    public static IEnumerable<Example> Examples => new List<Example>()
    {
        new Example(
            "Description of the application",
            new Options { Option1 = "Option1", Option2 = 100 })
    };

    [Option('o', "option1", Required = true, HelpText = "Option1.")]
    public string Option1 { get; set; }

    [Option('t', "option2", HelpText = "Option2.")]
    public int Option2 { get; set; }

    // à confirmer
    [OptionList('o', "options", HelpText = "Liste des options")]
    public IList<string> OptionsList { get; set; }

    [Option('v', null, HelpText = "Print details during execution.")]
    public bool Verbose { get; set; }

    // récupère tous les arguments qui n'ont été récupérés par une option
    [ValueList(typeof(List<string>))]
    public IList<string> InputFiles { get; set; }
}
Csharp.svg
var options = new Options();
if (CommandLine.Parser.Default.ParseArguments(args, options))
{
    if (options.Verbose) { }

    var inputDirectory = options.InputDirectory;
    
    if (options.OptionsList != null && options.OptionsList.Contains("mon_option")) { }
}
Dos.svg
-h
--inputdirectory="C:\Dossier"
--inputdirectory "C:\Dossier"
-i"C:\Dossier"
--options=mon_options:autre_option
-omon_options:autre_option
-v