# CommonLibs **Repository Path**: fancyxnet/common-libs ## Basic Information - **Project Name**: CommonLibs - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-30 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cracker公用库 始于风汐管理系统,抽成公共库 ## Cracker.AspNetCore ### 概述 AOP、依赖注入、模块化功能 ### 用法 1. AOP 自定义特性继承`AopAttributeBase`,实现抽象方法`OnBeforeAsync`,`OnAfterAsync`,如果需要自定义异常,需重写虚方法`OnExceptionAsync` 特性提供`ServiceProvider`用于获取容器中已注册服务 > AOP特性只适用于2.1中通过接口标记自动注册的类方法 2. 依赖注入 2.1 通过接口标记自动注册 *只适用于实现了接口的服务,如A:IA,会把A注册为IA* `IScopedDependency`将类的生命周期注册为作用域(Scoped) `ISingletonDependency`将类的生命周期注册为单例(Singleton) `ITransientDependency`将类的生命周期注册为瞬时(Transient) 2.2 通过`DependencyInject`特性注册 DependencyInject特性提供了更细粒度的控制,可以指定注册的接口、生命周期等,适用于没有接口的类,或者需要注册为多个接口的类 *直接注册类本身到容器,请使用此特性* 3. 模块化 ## Cracker.AssemblyScanner ### 概述 初始化项目程序集 ### 用法 在项目入口处调用`AssemblyManager.Instance.Initialize`方法,传入需要配置(扫描的程序集名称,前缀等) ## Cracker.Caching ### 概述 缓存封装,支持redis前缀注入;提供`ICacheClient`接口以Scoped方式注册 ### 用法 * 使用前必须调用`RedisHelper.Instance.Initialize`初始化连接 * `ICacheClient`能像StackExchange.Redis的`IDatabase`一样使用,并提供了对象设置和获取等方法 * 提供`AddCacheClient`方法添加`ICacheClient`到容器中 ## Cracker.Consul ### 概述 Consul服务注册与发现,配置中心 ### 用法 * `AddConsulConfiguration`使用consul作为配置中心 * `AddConsulDiscovery`使用consul进行服务注册与发现 * 使用了服务注册发现,就必须调用`RegisterNode`方法注册当前服务节点到consul` ## Cracker.EfCore 用途:EFCore+MySql+Dapper通用包 ## Cracker.EventBus ### 概述 DotNetCAP+Redis事件总线,对应官方包版本 ### 用法 * 使用mysql存储消息发布/订阅记录,使用redis作为消息队列 * `AddEventBus`方法添加事件总线到容器中,提供了配置选项,如使用Redis作为消息队列 ## Cracker.IdentityServer ### 概述 基于JWT实现的身份认证服务,提供了当前用户、当前租户、令牌生成等功能 ### 用法 * `AddIdentityServer`注册身份认证服务到容器中,提供了配置选项 * `UseCurrentUser`启用当前用户功能,提供了`ICurrentUser`接口获取当前用户信息 * `UseMultiTenancy`启用多租户功能,提供了`ICurrentTenant`接口获取当前租户信息 ## Cracker.IdentityServer.Abstractions ### 概述 抽象Cracker.IdentityServer,用于其他项目轻量化引用 ### 用法 * `ICurrentUser`接口获取当前用户信息` * `ICurrentTenant`接口获取当前租户信息` * `ITenant`租户ID公共字段 * `ITenantChecker`租户检查器接口 * `TenantManager`线程安全的当前租户管理 * `UserManager`线程安全的当前用户管理` ## Cracker.Orleans ### 概述 Orleans配置,Redis集群,Redis存储,版本对应官方包版本 ### 用法 * `UseOrleansWithRedis`方法配置Orleans使用Redis集群作为存储和消息传递 ## Cracker.Scheduler ### 概述 定时任务调度器,基于Quartz.AspNetCore,自带UI动态控制;内置了init.sql可通过配置开启(开启后自动创建数据库)。 ### 用法 * 需要启用控制台,必须调用`UseSchedulerDashboard` * ApiHasAccess能够配置以下权限控制,默认是允许匿名访问 * 默认访问`/CrackerScheduler`是UI控制界面,可配置的根路径 * `/{根路径}/AddJob`添加定时任务 * `/{根路径}/AddExeApiJob`添加API调度定时任务 * `/{根路径}/UpdateJobSchedule`更新定时任务 * `/{根路径}/JobList`定时任务列表 * `/{根路径}/PauseJob`暂停任务 * `/{根路径}/ResumeJob`继续进行任务 * `/{根路径}/DeleteJob`删除任务 * `/{根路径}/JobExists`任务是否存在 ## Cracker.Serilog ### 概述 Serilog本地日志+ES日志 ### 用法 * `UseSerilogSetup`方法会根据配置自动判断是使用本地日志还是ES日志 ## Cracker.SnowflakeId ### 概述 雪花ID生成器 ### 用法 * 使用前需调用`IdGenerater.Init`初始化,传入工作ID和数据中心ID,建议每个服务实例配置唯一 * `IdGenerater.Instance.NextId`方法生成一个新的雪花ID,返回类型为long ## Cracker.Storage 用途:对象存储功能封装 ## Cracker.Swagger ### 概述 Swagger文档增强,分组 ### 用法 * `AddSwaggerGenPro`对应原官方包`AddSwaggerGen`方法 * `UseSwaggerPro`对应原官方包`UseSwagger`方法,提供了分组功能 * `SwaggerGroup`标记的控制器会按照传入的标题、版本自动分组到Swagger文档中 ## Cracker.Utils ### 概述 通用工具包,xxxHelper类使用懒加载实例方法,xxxUtils类使用静态方法 ### 用法 * `CollectionUtils`提供列表转树形方法 * `EncryptionUtils`提供hash加密,base64编码,RSA加密 * `HttpUtils`提供请求的UA获取,IP检查 * `JsonUtils`提供对象与Json字符串的转换方法(基于Newtonsoft.Json提供统一规约) * `MimeTypesHelper`提供文件扩展名与MimeType的映射方法` * `StringUtils`提供常用字符串操作方法,如驼峰转下划线,字符串截断显示等 * `TimeHelper`提供Unix时间戳与DateTime的转换方法,获取当前时间戳等方法