mirror of
https://github.com/Tyrrrz/CliFx.git
synced 2025-10-25 15:19:17 +00:00
33 lines
1.1 KiB
C#
33 lines
1.1 KiB
C#
using System.Threading.Tasks;
|
|
using CliFx.Demo.Commands;
|
|
using CliFx.Demo.Services;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace CliFx.Demo
|
|
{
|
|
public static class Program
|
|
{
|
|
public static Task<int> Main(string[] args)
|
|
{
|
|
// We use Microsoft.Extensions.DependencyInjection for injecting dependencies in commands
|
|
var services = new ServiceCollection();
|
|
|
|
// Register services
|
|
services.AddSingleton<LibraryService>();
|
|
|
|
// Register commands
|
|
services.AddTransient<BookCommand>();
|
|
services.AddTransient<BookAddCommand>();
|
|
services.AddTransient<BookRemoveCommand>();
|
|
services.AddTransient<BookListCommand>();
|
|
|
|
var serviceProvider = services.BuildServiceProvider();
|
|
|
|
return new CliApplicationBuilder()
|
|
.AddCommandsFromThisAssembly()
|
|
.UseCommandFactory(type => (ICommand) serviceProvider.GetRequiredService(type))
|
|
.Build()
|
|
.RunAsync(args);
|
|
}
|
|
}
|
|
} |