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