Program.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using bundleboiler.ui;
  2. using Microsoft.Extensions.DependencyInjection;
  3. using Microsoft.Extensions.Hosting;
  4. using qdr.app.bundleboiler.business;
  5. using qdr.app.bundleboiler.data.Model;
  6. using qdr.app.bundleboiler.ui.Configuration;
  7. using Quadarax.Foundation.Core.Business.Injection;
  8. using Quadarax.Foundation.Core.Logging;
  9. namespace qdr.app.bundleboiler.ui
  10. {
  11. internal static class Program
  12. {
  13. public static IServiceProvider? ServiceProvider { get; private set; }
  14. /// <summary>
  15. /// The main entry point for the application.
  16. /// </summary>
  17. [STAThread]
  18. static void Main()
  19. {
  20. // To customize application configuration such as set high DPI settings or default font,
  21. // see https://aka.ms/applicationconfiguration.
  22. ServiceProvider = CreateHostBuilder().Build().Services;
  23. ApplicationConfiguration.Initialize();
  24. Application.Run(new MainForm(ServiceProvider.GetService<ILogger>()));
  25. }
  26. private static IHostBuilder CreateHostBuilder()
  27. {
  28. return Host.CreateDefaultBuilder()
  29. .ConfigureServices((context, services) => {
  30. // configuration
  31. services.AddSingleton<IOptions, ApplicationOptions>();
  32. // db context
  33. services.AddDbContext<BoilerDbContext>();
  34. // logging
  35. services.AddSingleton<ILogger, Quadarax.Foundation.Core.NLog.LoggerFactory>();
  36. // business services
  37. DiManager.RegisterAssemblyFromThisAppdomain();
  38. DiManager.ScanAndRegisterDependencyInjections(services);
  39. });
  40. }
  41. }
  42. }