Skip to content

Commit

Permalink
feature: added alernative ExceptionEventHandler registration via `ser…
Browse files Browse the repository at this point in the history
…vices.AddTransient<ExceptionEventHandler>()`
  • Loading branch information
deniszykov committed Sep 17, 2023
1 parent 7e32a5e commit 6276367
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/deniszykov.CommandLine/Builders/CommandLineBuilder.cs
Expand Up @@ -94,12 +94,18 @@ public CommandLine Build()
var typeConversionProvider = (ITypeConversionProvider?)serviceProvider.GetService(typeof(ITypeConversionProvider)) ?? new TypeConversionProvider();
var console = (IConsole?)serviceProvider.GetService(typeof(IConsole)) ?? new DefaultConsole(this.configuration.HookConsoleCancelKeyPress);
var helpTextProvider = (IHelpTextProvider?)serviceProvider.GetService(typeof(IHelpTextProvider)) ?? new DefaultHelpTextProvider();
var errorHandlers = (IEnumerable<ExceptionEventHandler>?)serviceProvider.GetService(typeof(IEnumerable<ExceptionEventHandler>)) ?? Array.Empty<ExceptionEventHandler>();

Check failure on line 97 in src/deniszykov.CommandLine/Builders/CommandLineBuilder.cs

View workflow job for this annotation

GitHub Actions / build

'Array' does not contain a definition for 'Empty'

var scopedServiceProvider = new ServiceProvider(serviceProvider);
scopedServiceProvider.RegisterInstance(typeof(ITypeConversionProvider), typeConversionProvider);
scopedServiceProvider.RegisterInstance(typeof(IConsole), console);
scopedServiceProvider.RegisterInstance(typeof(IHelpTextProvider), helpTextProvider);

foreach (var errorHandler in errorHandlers)
{
this.configuration.UnhandledExceptionHandler += errorHandler;
}

var commandLine = new CommandLine(
CombinedVerbsBuilder.Create(this.verbSetBuilders),
this.arguments,
Expand Down

0 comments on commit 6276367

Please sign in to comment.