In the code below, I'd like to be able to either: - Pass the parsed verb to RunTask or - Retrieve the verb in RunTask Is either one or both possible using 2.1.1-beta? Thanks, Jeff ` static int Main(string[] args) { int exitCode = CommandLine.Parser.Default.ParseArguments<AuditorOpinionScanOptions, TestTaskOptions>(args) .MapResult( (AuditorOpinionScanOptions options) => RunTask<AuditorOpinionScanTask, AuditorOpinionScanOptions>(options), (TestTaskOptions options) => RunTask<TestTask, TestTaskOptions>(options), errs => 1 ); return exitCode; } private static int RunTask<TTask, TOptions>(TOptions options) where TTask: ITask<TOptions>, new() { TTask task = new TTask() { Log = CreateLogger(), Options = options }; return task.Execute(); } `
Activity
jeffeld commentedon Aug 23, 2017
So after a little thinking, it dawned on me the verb is an attribute on the options class. A little Googleing turned up this little gem.
Adding the extention method in Darin Dimitrov's answer (dated April 16 2010) allowed me to add this line to RunTask()...
string verb = typeof(TOptions).GetAttributeValue((VerbAttribute verbAttribute) => verbAttribute.Name);...and use it where required.
Would be interested to know if there is a better way, but if not please go ahead and close this.
Cheers,
Jeff