|
|
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);
|
|
|
//});
|
|
|
|
|
|
}
|
|
|
}
|
|
|
} |