
文章目录背景初始化项目新建空项目添加Swagger库在根目录新建QuickStartModule改造Program.cs添加AutoFac包在Module上添加修改Program.cs添加Log添加库在Program.cs最开始配置logger修改Program.cs在Module里面集成log添加swagger修改Module在Module里添加ConfigureSwaggerUse Swagger将ApplicationService的方法映射到Swagger关闭防伪令牌验证背景本文介绍如何手动为空白项目集成ABP框架。初始化项目新建空项目dotnet new web-o QuickStartDemo--no-https添加Swagger库NuGet\Install-PackageVolo.Abp.SwashbuckleSwagger库已经包含了MVC的库在根目录新建QuickStartModule[DependsOn(typeof(AbpAspNetCoreMvcModule))]publicclassQuickStartModule:AbpModule{publicoverridevoidOnApplicationInitialization(ApplicationInitializationContextcontext){varappcontext.GetApplicationBuilder();varenvcontext.GetEnvironment();// Configure the HTTP request pipeline.if(env.IsDevelopment()){app.UseExceptionHandler(/Error);// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.app.UseHsts();}app.UseHttpsRedirection();app.UseStaticFiles();app.UseRouting();app.UseConfiguredEndpoints();}}改造Program.csvarbuilderWebApplication.CreateBuilder(args);awaitbuilder.AddApplicationAsyncQuickStartModule();varappbuilder.Build();awaitapp.InitializeApplicationAsync();awaitapp.RunAsync();添加AutoFac包NuGet\Install-PackageVolo.Abp.Autofac在Module上添加[DependsOn(typeof(AbpAutofacModule))]修改Program.csvarbuilderWebApplication.CreateBuilder(args);builder.Host.UseAutofac();//添加这一行awaitbuilder.AddApplicationAsyncQuickStartModule();添加Log添加库NuGet\Install-PackageSerilog.Sinks.Async NuGet\Install-PackageSerilog.AspNetCore在Program.cs最开始配置loggerLog.LoggernewLoggerConfiguration()#ifDEBUG.MinimumLevel.Debug()#else.MinimumLevel.Information()#endif.MinimumLevel.Override(Microsoft,LogEventLevel.Information).MinimumLevel.Override(Microsoft.EntityFrameworkCore,LogEventLevel.Warning).Enrich.FromLogContext().WriteTo.Async(cc.Console()).WriteTo.Async(ff.File(${AppContext.BaseDirectory}/Logs/logs.log,rollingInterval:RollingInterval.Hour,//每小时一个文件rollOnFileSizeLimit:true,// 限制单个文件的最大长度fileSizeLimitBytes:100*1024*1024,// 最大单个文件大小为100MBencoding:Encoding.UTF8//编码格式)).CreateLogger();修改Program.csvarbuilderWebApplication.CreateBuilder(args);builder.Host.UseAutofac().UseSerilog();//添加这个方法awaitbuilder.AddApplicationAsyncQuickStartModule();在Module里面集成logpublicoverrideTaskConfigureServicesAsync(ServiceConfigurationContextcontext){varservicescontext.Services;services.AddSerilog();//enable serilog in ASP/** other config **/returnbase.ConfigureServicesAsync(context);}添加swagger修改Module将[DependsOn(typeof(AbpAspNetCoreMvcModule))]改为[DependsOn(typeof(AbpSwashbuckleModule))]在Module里添加ConfigureSwaggerpublicvoidConfigureSwagger(IServiceCollectionservices){services.AddAbpSwaggerGen(options{options.SwaggerDoc(v1,newOpenApiInfo{TitleQuickStart API,Versionv1});options.DocInclusionPredicate((docName,description)true);options.CustomSchemaIds(typetype.FullName);options.HideAbpEndpoints();});}并调用publicoverrideTaskConfigureServicesAsync(ServiceConfigurationContextcontext){varservicescontext.Services;services.AddSerilog();//enable serilog in ASPConfigureSwagger(services);returnbase.ConfigureServicesAsync(context);}Use Swagger在OnApplicationInitialization里的app.UseStaticFiles();后面添加UseSwaggerapp.UseSwagger();app.UseAbpSwaggerUI(options{options.SwaggerEndpoint(/swagger/v1/swagger.json,QuickStart API);});将ApplicationService的方法映射到Swagger参照官方文档Module添加publicoverridevoidPreConfigureServices(ServiceConfigurationContextcontext){PreConfigureAbpAspNetCoreMvcOptions(options{options.ConventionalControllers.Create(typeof(QuickStartModule).Assembly);});}关闭防伪令牌验证publicoverrideTaskConfigureServicesAsync(ServiceConfigurationContextcontext){varservicescontext.Services;services.AddSerilog();//enable serilog in ASPConfigureSwagger(services);ConfigureAbpAntiForgeryOptions(options{options.AutoValidatefalse;// 全局关闭防伪令牌验证});returnbase.ConfigureServicesAsync(context);}