mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2025-06-02 07:39:50 -04:00
[CLI] Use Microsoft.Extensions.DependencyInjection instead of Stylet
This commit is contained in:
parent
5e0a2c6761
commit
9299b95250
2 changed files with 23 additions and 14 deletions
|
@ -10,8 +10,8 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CliFx" Version="0.0.5" />
|
||||
<PackageReference Include="Stylet" Version="1.3.0" />
|
||||
<PackageReference Include="CliFx" Version="0.0.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" />
|
||||
<PackageReference Include="Tyrrrz.Extensions" Version="1.6.3" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
@ -1,33 +1,42 @@
|
|||
using System.Threading.Tasks;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using CliFx;
|
||||
using DiscordChatExporter.Cli.Commands;
|
||||
using DiscordChatExporter.Core.Services;
|
||||
using StyletIoC;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace DiscordChatExporter.Cli
|
||||
{
|
||||
public static class Program
|
||||
{
|
||||
private static IContainer BuildContainer()
|
||||
private static IServiceProvider ConfigureServices()
|
||||
{
|
||||
var builder = new StyletIoCBuilder();
|
||||
var services = new ServiceCollection();
|
||||
|
||||
// Autobind the .Services assembly
|
||||
builder.Autobind(typeof(DataService).Assembly);
|
||||
// Register services
|
||||
services.AddSingleton<DataService>();
|
||||
services.AddSingleton<ExportService>();
|
||||
services.AddSingleton<SettingsService>();
|
||||
|
||||
// Bind settings as singleton
|
||||
builder.Bind<SettingsService>().ToSelf().InSingletonScope();
|
||||
// Register commands
|
||||
services.AddTransient<ExportChannelCommand>();
|
||||
services.AddTransient<ExportDirectMessagesCommand>();
|
||||
services.AddTransient<ExportGuildCommand>();
|
||||
services.AddTransient<GetChannelsCommand>();
|
||||
services.AddTransient<GetDirectMessageChannelsCommand>();
|
||||
services.AddTransient<GetGuildsCommand>();
|
||||
services.AddTransient<GuideCommand>();
|
||||
|
||||
// Set instance
|
||||
return builder.BuildContainer();
|
||||
return services.BuildServiceProvider();
|
||||
}
|
||||
|
||||
public static Task<int> Main(string[] args)
|
||||
{
|
||||
var container = BuildContainer();
|
||||
var serviceProvider = ConfigureServices();
|
||||
|
||||
return new CliApplicationBuilder()
|
||||
.AddCommandsFromThisAssembly()
|
||||
.UseCommandFactory(schema => (ICommand) container.Get(schema.Type))
|
||||
.UseCommandFactory(schema => (ICommand) serviceProvider.GetService(schema.Type))
|
||||
.Build()
|
||||
.RunAsync(args);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue