NetDocsForLLM/App.xaml.cs

45 lines
1.4 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using NetDocsForLLM.Services;
using NetDocsForLLM.ViewModels;
using System;
using System.Windows;
namespace NetDocsForLLM
{
public partial class App : Application
{
private readonly ServiceProvider _serviceProvider;
public App()
{
ServiceCollection services = new();
ConfigureServices(services);
_serviceProvider = services.BuildServiceProvider();
}
private void ConfigureServices(ServiceCollection services)
{
// Register services
services.AddSingleton<IDocFxService, DocFxService>();
services.AddSingleton<IDocumentationGenerator, DocumentationGenerator>();
services.AddSingleton<IAssemblyAnalyzer, AssemblyAnalyzer>();
// Register ViewModels
services.AddSingleton<MainViewModel>();
services.AddTransient<DocumentationViewModel>();
services.AddTransient<ExportViewModel>();
// Register Views
services.AddSingleton<MainWindow>();
}
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var mainWindow = _serviceProvider.GetRequiredService<MainWindow>();
mainWindow.DataContext = _serviceProvider.GetRequiredService<MainViewModel>();
mainWindow.Show();
}
}
}