LingYanAspCoreFramework 8.0.3

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.9.9 35 3/7/2026
8.9.8 29 3/7/2026
8.9.7 24 3/6/2026
8.9.6 24 3/6/2026
8.9.5 36 3/6/2026
8.9.4 19 3/6/2026
8.9.3 22 2/12/2026
8.9.2 30 2/12/2026
8.9.1 41 2/1/2026
8.9.0 32 1/27/2026
8.0.8 27 1/27/2026
8.0.7 62 5/7/2025
8.0.6 34 5/7/2025
8.0.5 41 4/19/2025
8.0.4 32 4/19/2025
8.0.3 38 4/19/2025
8.0.2 38 4/19/2025
8.0.1 47 4/19/2025
8.0.0 36 4/16/2025
3.0.0 34 4/16/2025
2.0.8 41 1/17/2025
2.0.7 40 1/16/2025
2.0.6 34 1/16/2025
2.0.5 38 1/15/2025
2.0.4 35 1/15/2025
2.0.3 41 1/15/2025
2.0.2 35 1/15/2025
2.0.1 33 1/15/2025
2.0.0 42 1/15/2025
1.1.9 44 12/9/2024
1.1.8 38 12/9/2024
1.1.7 41 10/29/2024
1.1.6 38 10/29/2024
1.1.5 37 10/29/2024
1.1.4 36 10/29/2024
1.1.3 40 9/12/2024
1.1.2 34 9/9/2024
1.1.1 35 9/5/2024