private static T DoStandardExceptionHandling<T>(ArgException ex, ArgHook.HookContext context, CommandLineArgumentsDefinition definition) where T : class { Console.WriteLine(ex.Message); ArgUsage.GetStyledUsage(definition, definition.ExceptionBehavior.ExeName, new ArgUsageOptions { ShowPosition = definition.ExceptionBehavior.ShowPositionColumn, ShowType = definition.ExceptionBehavior.ShowTypeColumn, ShowPossibleValues = definition.ExceptionBehavior.ShowPossibleValues, }).Write(); return CreateEmptyResult<T>(context, ex); }
private static T DoStandardExceptionHandling <T>(ArgException ex, ArgHook.HookContext context, CommandLineArgumentsDefinition definition) where T : class { Console.WriteLine(ex.Message); if (definition.ExceptionBehavior.UsageTemplateFile != null) { var template = File.ReadAllText(definition.ExceptionBehavior.UsageTemplateFile); ArgUsage.GenerateUsageFromTemplate(definition, template).Write(); } else { UsageTemplateProvider.GetUsage(definition.ExceptionBehavior.UsageTemplateProviderType, definition).Write(); } return(CreateEmptyResult <T>(context, ex)); }
private static T CreateEmptyResult <T>(ArgHook.HookContext context, ArgException ex = null, bool cancelled = false) { ArgAction ret = new ArgAction(); if (typeof(T) == typeof(ArgAction)) { ret = new ArgAction(); } else if (typeof(T).IsSubclassOf(typeof(ArgAction))) { ret = Activator.CreateInstance(typeof(T)) as ArgAction; } else { return(default(T)); } ret.HandledException = ex; ret.Definition = context.Definition; ret.Context = context; ret.Cancelled = cancelled; return((T)((object)ret)); }