using Estsh.Client.Common.HttpClientUtil; using Estsh.Client.Common.ServiceUtil; using Estsh.Client.Common.Util; using log4net; using log4net.Repository; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace Estsh.Client { internal static class Program { public static ILoggerRepository LoggerRepository { get; set; } /// /// The main entry point for the application. /// [STAThread] static void Main() { // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); ServiceCollection services = new ServiceCollection(); ConfigureServices(services); //初始化log4net LoggerRepository = LogManager.CreateRepository("NETCoreRepository"); LogHelper.SetConfig(LoggerRepository, "log4net.config"); //读取本地缓存 LocalCache.ReadCache(); //Application.Run(new Form1()); Application.Run(new Login()); } ///         /// 在DI容器中注册所有的服务类型         ///         ///         private static void ConfigureServices(ServiceCollection services) { //register configuration IConfigurationBuilder cfgBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT")}.json", optional: true, reloadOnChange: false); IConfiguration configuration = cfgBuilder.Build(); services.AddSingleton(configuration); services.AddHttpClient(configuration.GetSection("HttpClientName").Value, c => { c.BaseAddress = new Uri(configuration.GetSection("WebApiUrl").Value); c.Timeout = TimeSpan.FromSeconds(50); }).SetHandlerLifetime(TimeSpan.FromMinutes(Convert.ToDouble(configuration.GetSection("HttpClientHandlerLifetime").Value))); var serviceProvider = services.BuildServiceProvider(); HttpClientHelper.InitService(serviceProvider, configuration.GetSection("HttpClientName").Value); ServiceProviderHelper.InitServiceProvider(serviceProvider); ////Create logger instance //var serilogLogger = new LoggerConfiguration() // .ReadFrom.Configuration(configuration) // .Enrich.FromLogContext() // .CreateLogger(); ////register logger //services.AddLogging(builder => { // object p = builder.AddSerilog(logger: serilogLogger, dispose: true); //}); } } }