Parsing dei parametri C# e VB.NET


Dovete realizzare una applicazione console in ambiente .Net, con parametri in riga di comando? Non perdete tempo a creare routine custom per verificare la presenza dei parametri, lasciate fare tutto a CommandLineParser. L’installazione è semplice da NuGet. Basta fornire una classe modello con gli opportuni metadati e richiamare il parser, in output otterrete l’oggetto con i valori dei parametri popolati.

Ad esempio:

using System;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Threading;
using CommandLine;

namespace TxtTrasformation
{
    internal class Program
    {
        public class Options
        {
            [Option('f', "FilePath", Required = true, HelpText = "Inserisci il nome file da elaborare")]
            public string  FilePath { get; set; }
        }
        private static void Main(string[] args)
        {
            Parser.Default.ParseArguments<Options>(args)
                   .WithParsed<Options>(o =>
                   {
                       ElaboraFile(o.FilePath);
                   });
        }
        static void ElaboraFile(string filein) {
            Stopwatch sw = new Stopwatch();
            sw.Start();
/*
Elaborazione...
*/
            sw.Stop();

        }
    }
}

La classe Options definisce un parametro obbiligatorio “f” di tipo testo. Se il parsing dei parametri fallisce, viene automaticamente visualizzata la schermata di riepilogo dei parametri. In alternativa si può gestire l’errore nella funzione:

.WithNotParsed((errs) => HandleParseError(errs));