LingYanAspCoreFramework 8.0.5

LingYan_ASPFramework

介绍

适用于Asp.Net Core的后端框架

使用说明

1、模块化注入,模块内类应当继承BaseModule,此抽象类有三种形式 BaseModule<IServiceCollection, IServiceProvider>类型

public class Program
{
    public static void Main(string[] args)
    {
        var builder = WebApplication.CreateBuilder(args);

        //此扩展方法自动注入各模块及各模块方法及特性注入
        builder.AppRegisterProjectModule();

        var app = builder.Build();

        //此扩展方法自动初始化各模块及各模块初始化方法
        app.AppInitializationProjectModule();

        app.Run();
    }
}

模块化基类

模块内应当有一个基类继承BaseModule,此抽象类有三种形式

BaseModule<WebApplicationBuilder, WebApplication>
    public class RESTApiModule : BaseModule<WebApplicationBuilder, WebApplication>
    {
        //此属性为模块注入加载顺序可不重写让其默认即可,如有特殊需求可重写规范加载顺序
        public override int PageIndex { get; set; } = 5;

        //此方法可扩展服务注册
        public override void ARegisterModule(WebApplicationBuilder webBuilder)
        {
            throw new NotImplementedException();
        }

       //此方法可扩展应用初始化
        public override void BInitializationModule(WebApplication webApp)
        {
            throw new NotImplementedException();
        }
    }
BaseModule<IServiceCollection, IServiceProvider>
    public class RESTApiModule : BaseModule<IServiceCollection, IServiceProvider>
    {
        //此属性为模块注入加载顺序可不重写让其默认即可,如有特殊需求可重写规范加载顺序
        public override int PageIndex { get; set; } = 5;

        //此方法可扩展服务注册
        public override void ARegisterModule(IServiceCollection services)
        {
            throw new NotImplementedException();
        }

       //此方法可扩展应用初始化
        public override void BInitializationModule(IServiceProvider provider)
        {
            throw new NotImplementedException();
        }
    }
BaseModule<IServiceCollection, IConfigurationManager, IServiceProvider>
    public class RESTApiModule : BaseModule<IServiceCollection, IConfigurationManager, IServiceProvider>
    {
        //此属性为模块注入加载顺序可不重写让其默认即可,如有特殊需求可重写规范加载顺序
        public override int PageIndex { get; set; } = 5;

        //此方法可扩展服务注册
        public override void ARegisterModule(IServiceCollection services, IConfigurationManager configuration)
        {
            throw new NotImplementedException();
        }

       //此方法可扩展应用初始化
        public override void BInitializationModule(IServiceProvider provider)
        {
            throw new NotImplementedException();
        }
    }

特性自动注册

LYTServiceAttribute服务特性
namespace LingTest.TestProvider
{
    //该特性只需要打在服务类上,传入接口类型即可,框架会在启动时自动注入
    [LYTService(typeof(ITestService))]
    public class TestService : ITestService
    {
        public ResponceBody<string> TestBack()
        {
            return new ResponceBody<string>(20000, "测试返回");
        }
    }
}
LYInstanceAttribute实例特性
namespace LingTest.Helper
{
    //实例特性,无需任何传参,注册案例
    [LYInstance]
    public class TestHelper
    {
        public void TestInstance()
        {

        }
    }
}
LYDynamicRouteAttribute动态路由特性
namespace LingTest.DynamicRoute
{
    //动态路由原则上只需要在类上添加[LYDynamicRoute]特性即可
    //BaseDynamicRoute只是继承ControllerBase,可以更方便的使用OK(),NotFound()等种序列化方法
    //动态路由的HTTP类型可以在配置文件中的./Envs/Configs/HttpMethod.json配置,也可以直接打赏路由类型特性
    [LYDynamicRoute]
    public class TestDynamicRoute : BaseDynamicRoute
    {
        public IActionResult TestPost()
        {
            return Ok("返回值");
        }
        [HttpGet]
        public IActionResult TestGet()
        {
            return Ok("返回值");
        }
    }
}
LYAuthorizeHandlerAttribute权限处理器特性
LYGlobalFilterAttribute全局过滤器特性
LYManagerAttribute领域管理特性
LYMiddlewareAttribute中间件特性
LYDbContextAttribute数据库上下文特性

仓储与工作单元

仓储与工作单元已自动注入,可在任何地方引入。

仓储注入引用
    [LYManager]
    public class UserManager
    {
        public UserManager(IRepository<UserEntity> userRepo,
            IRepository<TeamEntity> userTeamRepo,
            IRepository<TeamMemberEntity> userTeamMemborRepo,
            IRepository<UserFileEntity> userFileRepo)
        {
            UserRepo = userRepo;
            TeamRepo = userTeamRepo;
            TeamMemborRepo = userTeamMemborRepo;
            UserFileRepo = userFileRepo;
           
        }
        public IRepository<UserEntity> UserRepo { get; }
        public IRepository<TeamEntity> TeamRepo { get; }
        public IRepository<TeamMemberEntity> TeamMemborRepo { get; }
        public IRepository<UserFileEntity> UserFileRepo { get; }
      

        public async Task<UserEntity> Queryuser(long userId)
        {
            return await this.UserRepo.GetFirstOrDefaultAsync(predicate: p => p.Id == userId && p.IsDeleted == false);
        }
        public async Task<UserEntity> Queryuser(string userPhone)
        {
            return await this.UserRepo.GetFirstOrDefaultAsync(predicate: p => p.UserPhone == userPhone && p.IsDeleted == false);
        }
}

No packages depend on LingYanAspCoreFramework.

Version Downloads Last updated
8.0.7 18 5/7/2025
8.0.6 6 5/7/2025
8.0.5 10 4/19/2025
8.0.4 4 4/19/2025
8.0.3 7 4/19/2025
8.0.2 7 4/19/2025
8.0.1 10 4/19/2025
8.0.0 7 4/16/2025
3.0.0 6 4/16/2025
2.0.8 14 1/17/2025
2.0.7 9 1/16/2025
2.0.6 7 1/16/2025
2.0.5 7 1/15/2025
2.0.4 7 1/15/2025
2.0.3 9 1/15/2025
2.0.2 7 1/15/2025
2.0.1 7 1/15/2025
2.0.0 10 1/15/2025
1.1.9 11 12/9/2024
1.1.8 7 12/9/2024
1.1.7 14 10/29/2024
1.1.6 7 10/29/2024
1.1.5 7 10/29/2024
1.1.4 7 10/29/2024
1.1.3 9 9/12/2024
1.1.2 7 9/9/2024
1.1.1 7 9/5/2024