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()); } } }
复制代码

 

posted on   落叶子  阅读(588)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示