LingYanAspCoreFramework 8.0.4

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
9.0.5 1 9/10/2026
9.0.4 1 9/10/2026
9.0.3 1 9/10/2026
9.0.2 1 9/10/2026
9.0.1 1 9/10/2026
9.0.0 1 9/10/2026
8.9.9 53 3/7/2026
8.9.8 39 3/7/2026
8.9.7 31 3/6/2026
8.9.6 38 3/6/2026
8.9.5 50 3/6/2026
8.9.4 31 3/6/2026
8.9.3 32 2/12/2026
8.9.2 42 2/12/2026
8.9.1 50 2/1/2026
8.9.0 45 1/27/2026
8.0.8 38 1/27/2026
8.0.7 74 5/7/2025
8.0.6 46 5/7/2025
8.0.5 51 4/19/2025
8.0.4 47 4/19/2025
8.0.3 50 4/19/2025
8.0.2 52 4/19/2025
8.0.1 63 4/19/2025
8.0.0 50 4/16/2025
3.0.0 46 4/16/2025
2.0.8 54 1/17/2025
2.0.7 50 1/16/2025
2.0.6 45 1/16/2025
2.0.5 50 1/15/2025
2.0.4 49 1/15/2025
2.0.3 55 1/15/2025
2.0.2 53 1/15/2025
2.0.1 45 1/15/2025
2.0.0 54 1/15/2025
1.1.9 57 12/9/2024
1.1.8 52 12/9/2024
1.1.7 50 10/29/2024
1.1.6 50 10/29/2024
1.1.5 49 10/29/2024
1.1.4 47 10/29/2024
1.1.3 50 9/12/2024
1.1.2 44 9/9/2024
1.1.1 47 9/5/2024