You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
3.0 KiB
C#

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

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; }
/// <summary>
/// The main entry point for the application.
/// </summary>
[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());
}
/// <summary>
        /// 在DI容器中注册所有的服务类型
        /// </summary>
        /// <param name="services"></param>
        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<IConfiguration>(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);
//});
}
}
}