using System.Reflection; using BLL; using DAL; using HZY.Framework.DependencyInjection; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Model; using NLog; using NLog.Extensions.Logging; using SqlSugar; namespace Scada { internal static class Program { /// /// The main entry point for the application. /// [STAThread] static void Main() { var services = new ServiceCollection(); ConfigureServices(services); ApplicationConfiguration.Initialize(); var serviceProvider = services.BuildServiceProvider(); Globals.ServiceProvider = serviceProvider; var frmMain = serviceProvider.GetRequiredService(); var db = serviceProvider.GetRequiredService(); // db.CodeFirst.SetStringDefaultLength(200) //.InitTables(typeof(AuthEntity),typeof(DataEntity), typeof(RecipeEntity), typeof(UserEntity)); Application.Run(frmMain); } private static void ConfigureServices(ServiceCollection services) { services.AddDependencyInjection(options => { options.Assemblies = new[] { typeof(Program).Assembly,typeof(BaseDto).Assembly,typeof(DB).Assembly }; }); IConfigurationBuilder cfgBuilder = new ConfigurationBuilder() .SetBasePath(Environment.CurrentDirectory) .AddJsonFile("appsettings.json"); //构建json配置 IConfiguration configuration = cfgBuilder.Build(); //注入json单例对象 services.AddSingleton(configuration) .AddLogging(loggerBuilder => { loggerBuilder.ClearProviders();//清除其他日志的提供者 loggerBuilder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);//设置等级 loggerBuilder.AddNLog(); }); DbType dbType = Enum.Parse(configuration["DbContexts:DbType"]); string connnectString = configuration[$"DbContexts:{dbType}:ConnectionString"]; services.AddSqlSugarSetup(dbType, connnectString); //获取NLog配置信息 var nlogConifg = configuration.GetSection("NLog"); //设置Nlog配置 LogManager.Configuration = new NLogLoggingConfiguration(nlogConifg); } } }