Program.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System.Text;
  2. using Bmp.Core.Common.AssemblyInject;
  3. using Bmp.Core.Common.Logging;
  4. using Microsoft.Extensions.Logging.Console;
  5. namespace Bmp.WinForms;
  6. internal class Program
  7. {
  8. /// <summary>
  9. /// The main entry point for the application.
  10. /// </summary>
  11. [STAThread]
  12. private static void Main()
  13. {
  14. Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
  15. ApplicationConfiguration.Initialize();
  16. var loggingIntoEventBus = new LoggingIntoEventBus();
  17. var builder = Host.CreateDefaultBuilder();
  18. builder.ConfigureServices((ctx, services) =>
  19. {
  20. //控制台日志格式
  21. services.AddLogging(opt =>
  22. {
  23. opt.AddSimpleConsole(p =>
  24. {
  25. p.TimestampFormat = "[dd HH:mm:ss] ";
  26. p.SingleLine = true;
  27. p.ColorBehavior = LoggerColorBehavior.Enabled;
  28. })
  29. .AddDebug()
  30. .AddProvider(loggingIntoEventBus);
  31. services.AddSingleton(opt);
  32. });
  33. //services.AddWindowsFormsBlazorWebView();
  34. services.AddAssemblyInject<Program>();
  35. //services.AddBootstrapBlazor();
  36. services.AddSingleton<MainForm>();
  37. });
  38. var host = builder.Build();
  39. host.Start();
  40. var mainForm = host.Services.GetRequiredService<MainForm>();
  41. Application.Run(mainForm);
  42. host.StopAsync().Wait();
  43. }
  44. }