# LingYanAspCoreFramework **Repository Path**: www-lingyanspace-com/lingyanaspcoreframework ## Basic Information - **Project Name**: LingYanAspCoreFramework - **Description**: 适用于Asp.Net Core的后端框架 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 0 - **Created**: 2024-08-06 - **Last Updated**: 2025-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LingYan_ASPFramework ## 介绍 LingYan_ASPFramework 是一个用于构建 ASP.NET Core 应用程序的框架,支持模块化架构、特性自动注册、动态路由、权限处理、全局过滤、仓储模式和工作单元模式。它旨在提高开发效率并简化常见的开发任务,如数据库操作、服务注册和请求处理。 ## 使用说明 ### 模块化基类 框架提供了多种模块化基类来支持应用程序的不同部分,包括: - `BaseModule` - `BaseModule` - `BaseModule` 这些基类允许开发者以统一和可扩展的方式注册服务和初始化模块。 ### 特性自动注册 框架支持通过特性自动注册服务和组件,这些特性包括: - **`LYTServiceAttribute`**: 用于标记服务类,实现自动服务注册。 - **`LYInstanceAttribute`**: 用于标记需要注册为实例的类。 - **`LYDynamicRouteAttribute`**: 用于支持动态路由的控制器类。 - **`LYAuthorizeHandlerAttribute`**: 用于权限处理类。 - **`LYGlobalFilterAttribute`**: 用于标记全局过滤器。 - **`LYManagerAttribute`**: 用于领域管理类。 - **`LYMiddlewareAttribute`**: 用于中间件类。 - **`LYDbContextAttribute`**: 用于数据库上下文类。 这些特性简化了服务、路由和过滤器的注册过程,使得代码更加整洁和易维护。 ### 仓储与工作单元 框架内置了仓储模式 (`IRepository`) 和工作单元模式 (`IUnitOfWork`) 来统一管理数据访问逻辑。这些接口支持同步和异步操作,包括: - 查询操作 (`GetAll`, `GetPagedList`) - 插入、更新和删除 (`Insert`, `Update`, `Delete`) - 聚合操作 (`Count`, `Sum`, `Average`) - 事务管理 (`SaveChanges`, `SaveChangesAsync`) 仓储模式支持多种数据库操作,如 SQL Server、MySQL 和 PostgreSQL,并且可以通过特性 (`LYDbContextAttribute`) 进行自定义配置。 ## 安装与配置 要使用此框架,请确保您的项目已安装 .NET Core SDK 并支持 8.0 或更高版本。然后,将框架引用到您的项目中,并根据需求注册模块和数据库上下文。 ## 示例代码 ```csharp // 示例:服务注册 [LYTService(typeof(ITestService))] public class TestService : ITestService { public ResponceBody TestBack() { return new ResponceBody("Test successful", 200); } } // 示例:动态路由控制器 [LYDynamicRoute] public class TestDynamicRoute : BaseDynamicRoute { [HttpGet] public IActionResult TestGet() { return Ok("Dynamic route accessed via GET"); } } ``` ## 许可证 本项目采用 MIT 许可证。详情请查看 LICENSE 文件。 ## 贡献 欢迎贡献!如果您有任何想法或改进,请提交 Pull Request 或创建 Issue。