Add DI support to CliFx

This commit is contained in:
2021-06-04 20:41:04 +02:00
parent de2cfdb632
commit 6b6325eeaf
2 changed files with 54 additions and 13 deletions

View File

@@ -28,21 +28,26 @@ namespace Akari.Prototype.Server
{
services.AddGrpc();
ConfigureStandardServices(Configuration, services);
services.AddHostedService<TcpProviderService>();
services.AddHostedService<AuthLifetimeService>();
}
public static void ConfigureStandardServices(IConfiguration configuration, IServiceCollection services)
{
services.AddOptions<TcpProviderOptions>()
.Bind(Configuration.GetSection(TcpProviderOptions.SectionPath))
.Bind(configuration.GetSection(TcpProviderOptions.SectionPath))
.ValidateDataAnnotations();
services.AddOptions<AkariOptions>()
.Bind(Configuration.GetSection(AkariOptions.SectionPath))
.Bind(configuration.GetSection(AkariOptions.SectionPath))
.ValidateDataAnnotations();
services.AddSingleton<IFingerprintManager, FingerprintManager>();
services.AddSingleton<IAuthManager, AuthManager>();
services.AddSingleton<IKeyManager, KeyManager>();
services.AddSingleton<AkariPath>();
services.AddHostedService<TcpProviderService>();
services.AddHostedService<AuthLifetimeService>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.