Program.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System.Reflection;
  2. using HZY.Framework.DependencyInjection;
  3. using Microsoft.Extensions.Configuration;
  4. using Microsoft.Extensions.DependencyInjection;
  5. using Microsoft.Extensions.Logging;
  6. using NLog;
  7. using NLog.Extensions.Logging;
  8. namespace Scada
  9. {
  10. internal static class Program
  11. {
  12. /// <summary>
  13. /// The main entry point for the application.
  14. /// </summary>
  15. [STAThread]
  16. static void Main()
  17. {
  18. var services = new ServiceCollection();
  19. ConfigureServices(services);
  20. ApplicationConfiguration.Initialize();
  21. var serviceProvider = services.BuildServiceProvider();
  22. Globals.ServiceProvider = serviceProvider;
  23. var frmMain = serviceProvider.GetRequiredService<FormMain>();
  24. Application.Run(frmMain);
  25. }
  26. private static void ConfigureServices(ServiceCollection services)
  27. {
  28. services.AddDependencyInjection(options =>
  29. {
  30. options.Assemblies = new[] { typeof(Program).Assembly };
  31. });
  32. IConfigurationBuilder cfgBuilder = new ConfigurationBuilder()
  33. .SetBasePath(Environment.CurrentDirectory)
  34. .AddJsonFile("appsettings.json");
  35. //构建json配置
  36. IConfiguration configuration = cfgBuilder.Build();
  37. //注入json单例对象
  38. services.AddSingleton<IConfiguration>(configuration)
  39. .AddLogging(loggerBuilder => {
  40. loggerBuilder.ClearProviders();//清除其他日志的提供者
  41. loggerBuilder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);//设置等级
  42. loggerBuilder.AddNLog();
  43. });
  44. //获取NLog配置信息
  45. var nlogConifg = configuration.GetSection("NLog");
  46. //设置Nlog配置
  47. LogManager.Configuration = new NLogLoggingConfiguration(nlogConifg);
  48. }
  49. }
  50. }