using Admin.Core.Common; using Admin.Core.Extensions; using Admin.Core.IRepository; using Admin.Core.IService; using Admin.Core.IService.ISys; using Admin.Core.Model; using Admin.Core.Repository; using Admin.Core.Service; using Admin.Core.Tasks; using Autofac; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using System.Text; using TouchSocket.Http; using Admin.Core.Socket; namespace Admin.Core.RealTimeService { /// /// Startup /// public class Startup { /// /// Startup /// /// /// public Startup(IConfiguration configuration, IWebHostEnvironment env) { Configuration = configuration; Env = env; } /// /// IConfiguration /// public IConfiguration Configuration { get; } /// /// 环境信息:开发/生产 /// public IWebHostEnvironment Env { get; } /// /// This method gets called by the runtime. Use this method to add services to the container. /// /// public void ConfigureServices(IServiceCollection services) { //Appsettings services.AddSingleton(new Appsettings(Configuration)); //日志文件目录 services.AddSingleton(new LogLock(Env.ContentRootPath)); //Memory缓存 services.AddMemoryCacheSetup(); //Sqlsugar数据库模型查询 services.AddSqlsugarSetup(); //AutoMapper services.AddAutoMapperSetup(); //添加TouchSocket //services.AddTouchSocketSetup(); //注册业务服务 AddServices(services); //任务调度 services.AddJobSetup(); //支持编码大全 例如:支持 System.Text.Encoding.GetEncoding("GB2312") System.Text.Encoding.GetEncoding("GB18030") Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); } /// /// 注意在Program.CreateHostBuilder,添加Autofac服务工厂 /// /// public void ConfigureContainer(ContainerBuilder builder) { builder.RegisterModule(new AutofacModuleRegister()); builder.RegisterModule(); } /// /// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. /// /// /// public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ISysTasksQzService tasksQzService, ISchedulerCenter schedulerCenter) { // 使用静态文件 app.UseStaticFiles(); // 然后是授权中间件 //app.UseAuthorization(); // 开启QuartzNetJob调度服务 app.UseQuartzJobMildd(tasksQzService, schedulerCenter); //启动TouchSocket //app.UseTouchSocketMildd(touchSocketService,httpService); } #region 注册服务 /// /// 注册服务 /// /// private static void AddServices(IServiceCollection services) { #region 注册服务 //services.AddScoped(); //services.AddScoped(); //services.AddScoped, BaseRepository>(); //services.AddSingleton, BaseServices>(); #endregion } #endregion } }