abp core版本添加额外应用层
1.新建类库WebProject.Application.App
2.添加WebProjectApplicationAppModule.cs
3.注册模块
using Abp.Application.Services; using Abp.AutoMapper; using Abp.Configuration.Startup; using Abp.Modules; using Abp.Reflection.Extensions; using System.Reflection; using WebProject.Authorization; namespace WebProject { [DependsOn( typeof(WebProjectCoreModule), typeof(AbpAutoMapperModule))] public class WebProjectApplicationAppModule : AbpModule { public override void Initialize() { var thisAssembly = typeof(WebProjectApplicationAppModule).GetAssembly(); IocManager.RegisterAssemblyByConvention(thisAssembly); Configuration.Modules.AbpAutoMapper().Configurators.Add( // Scan the assembly for classes which inherit from AutoMapper.Profile cfg => cfg.AddProfiles(thisAssembly) ); } } }
4.在WebProject.Web.Core项目中的WebProjectWebCoreModule.cs中添加依赖和设置生成webapi
using System; using System.Text; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.IdentityModel.Tokens; using Abp.AspNetCore; using Abp.AspNetCore.Configuration; using Abp.AspNetCore.SignalR; using Abp.Modules; using Abp.Reflection.Extensions; using Abp.Zero.Configuration; using WebProject.Authentication.JwtBearer; using WebProject.Configuration; using WebProject.EntityFrameworkCore; namespace WebProject { [DependsOn( typeof(WebProjectApplicationModule), typeof(WebProjectApplicationAppModule), //添加依赖 typeof(WebProjectEntityFrameworkModule), typeof(AbpAspNetCoreModule) ,typeof(AbpAspNetCoreSignalRModule) )] public class WebProjectWebCoreModule : AbpModule { private readonly IHostingEnvironment _env; private readonly IConfigurationRoot _appConfiguration; public WebProjectWebCoreModule(IHostingEnvironment env) { _env = env; _appConfiguration = env.GetAppConfiguration(); } public override void PreInitialize() { Configuration.DefaultNameOrConnectionString = _appConfiguration.GetConnectionString( WebProjectConsts.ConnectionStringName ); // Use database for language management Configuration.Modules.Zero().LanguageManagement.EnableDbLocalization(); Configuration.Modules.AbpAspNetCore() .CreateControllersForAppServices( typeof(WebProjectApplicationModule).GetAssembly() );
//设置生成webapi Configuration.Modules.AbpAspNetCore().CreateControllersForAppServices(typeof(WebProjectApplicationAppModule).Assembly, moduleName: "cline", useConventionalHttpVerbs: true); ConfigureTokenAuth(); } private void ConfigureTokenAuth() { IocManager.Register<TokenAuthConfiguration>(); var tokenAuthConfig = IocManager.Resolve<TokenAuthConfiguration>(); tokenAuthConfig.SecurityKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_appConfiguration["Authentication:JwtBearer:SecurityKey"])); tokenAuthConfig.Issuer = _appConfiguration["Authentication:JwtBearer:Issuer"]; tokenAuthConfig.Audience = _appConfiguration["Authentication:JwtBearer:Audience"]; tokenAuthConfig.SigningCredentials = new SigningCredentials(tokenAuthConfig.SecurityKey, SecurityAlgorithms.HmacSha256); tokenAuthConfig.Expiration = TimeSpan.FromDays(1); } public override void Initialize() { IocManager.RegisterAssemblyByConvention(typeof(WebProjectWebCoreModule).GetAssembly()); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现