SharpBoxesCore 是一个基于 C# 的开源开发工具库,旨在为开发者提供一系列常用功能模块和辅助类,以提高开发效率、减少重复代码编写,并增强项目的可维护性和扩展性。该库集成了多种实用工具类和通用扩展方法,适用于桌面应用、Web 项目以及插件式架构等多种场景。
安装
Install-Package SharpBoxesCore
📦 主要功能模块
缓存操作类
- 提供静态缓存操作类,简化数据存储和访问流程。
反射加载 DLL 类 (
LibLoadHelper
)- 支持动态加载 DLL 文件并创建指定接口的实例。
- 可用于实现插件系统或模块化架构。
HTTP 请求帮助类 (
HTTPHelper
)- 封装 HTTP 请求(GET、POST 等),简化网络通信操作。
配置文件处理
IniHelper
:读写 INI 格式配置文件。XMLHelper
:支持 XML 配置处理。ConfigFileHelper
:读取和保存应用程序配置。
压缩与解压 (
ZipHelper
)- 支持将文件夹打包为 ZIP 文件,或将 ZIP 文件解压到目标目录。
CSV 数据操作 (
CSVHelper
)- 支持生成 CSV 文件并导出集合数据,适用于报表导出等场景。
属性动态配置 (
ClassHelper
)- 设置属性显示名称、可见性、分类等元信息,适用于数据绑定或 UI 显示优化。
事件管理 (
EventHelper
)- 提供轻量级事件发布订阅机制,便于组件间通信。
数据验证 (
ValidationHelper
)- 提供常用的数据格式验证逻辑(如邮箱、电话号码等)。
C# 和 XAML 扩展方法
- 包括自动生成带有
OnPropertyChanged
的完整属性语句。 - 支持自动环绕
Task.Run(() => { })
操作,提升异步编程效率。
- 包括自动生成带有
✨ 使用该库的优点
1. 高效开发
- 集成大量常用功能,避免重复造轮子。
- 提供封装良好的工具类,开发者可直接调用,显著缩短开发周期。
2. 模块化设计
- 各功能模块独立存在,开发者可根据需求选择性引入。
- 例如:仅需使用
ZipHelper
或IniHelper
时,无需引入整个库的所有依赖。
3. 易于维护与扩展
- 工具类结构清晰、命名规范,符合面向对象设计原则。
- 支持后期功能扩展,便于团队协作维护。
4. 灵活性高
- 支持多种数据格式处理(INI、XML、CSV 等),适应不同业务场景。
- 动态加载 DLL 支持插件化开发,适合构建可扩展的应用程序架构。
5. 资源优化
- 压缩/解压功能集成在内,减少对外部组件的依赖。
- 提升本地文件处理能力,降低系统资源消耗。
6. 增强用户体验
- 属性动态配置功能 (
ClassHelper
) 可用于优化数据绑定和 UI 显示。 - 适用于 WPF、WinForms 等需要数据展示和编辑的界面框架。
7. 强大的代码片段支持
- 提供多个 C# 和 XAML 的实用代码模板,如:
- 自动生成具有通知机制的属性。
- 异步任务自动包裹。
- 极大提升编码效率和代码质量。
🚀 安装方式
Install-Package SharpBoxesCore
🧰 示例代码精选
// 属性设置
ClassHelper.SetDisplayName<Person>("Name", "姓名");
ClassHelper.SetBrowsable<Person>("Age", false);
ClassHelper.SetCategory<Person>("Email", "联系信息");
// INI 文件操作
string value = IniHelper.ReadItemValue("Section1", "Key1", "default.ini", "默认值");
IniHelper.WriteItems("Section1", "Key1", "NewValue", "config.ini");
// 压缩与解压
ZipHelper.PackFiles("output.zip", "sourceFolder");
ZipHelper.UnpackFiles("archive.zip", "outputFolder");
// CSV 导出
var students = Student.FakeMany(10);
CsvOprHelper.ToCSV(new List<CsvDataBase> {
new CsvDataNormal<Student>(students)
}).SaveToFile("students.csv");
// 动态加载 DLL
string message;
var instance = LibLoadHelper.LoadDll<IMyInterface>(
"MyPlugin.dll",
"MyNamespace",
"MyClass",
out message
);
// 配置读写
var config = ConfigFileHelper.ReadConfig<AppConfig>();
ConfigFileHelper.SaveConfig(config);
📌 总结
SharpBoxesCore 是一个非常实用的 C# 开发辅助工具库,集成了缓存、反射、HTTP、文件处理、配置管理、数据绑定等多个核心功能,特别适合中小型项目快速开发。其模块化设计和丰富的扩展方法大大提升了开发效率和代码可维护性,是值得推荐给广大 .NET 开发者的优秀开源项目。
📊主要API一览
1. 缓存操作类 (CacheHelper
)
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
设置缓存 | SetCache | string key, object value | void | 将对象存储到缓存中 |
获取缓存 | GetCache | string key | object | 根据键获取缓存对象 |
删除缓存 | RemoveCache | string key | void | 根据键删除缓存 |
2. 反射加载DLL类 (LibLoadHelper
)
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
加载DLL并创建实例 | LoadDll | string dllPath, string namespaceName, string className, out string message | T | 通过反射加载指定DLL并创建指定类的实例 |
获取类型 | GetTypeFromDll | string dllPath, string fullName | Type | 从指定 DLL 获取指定类型的 Type 对象 |
3. HTTP请求帮助类 (HTTPHelper
)
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
发送GET请求 | GetRequest | string url | string | 发送 GET 请求并返回响应结果 |
发送POST请求 | PostRequest | string url, string jsonData | string | 发送 POST 请求并返回响应结果 |
4. INI文件操作类 (IniHelper
)
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
读取INI值 | ReadItemValue | string section, string key, string filePath, string defaultValue | string | 从指定的INI文件中读取值 |
写入INI值 | WriteItems | string section, string key, string value, string filePath | void | 向指定的INI文件写入值 |
5. XML文件操作类 (XMLHelper
)
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
序列化对象为XML | SerializeToXml | object obj, string filePath | void | 将对象序列化为XML文件 |
反序列化XML为对象 | DeserializeFromXml | string filePath, Type type | object | 将XML文件反序列化为指定类型的对象 |
6. 压缩与解压工具类 (ZipHelper
)
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
压缩文件夹 | PackFiles | string zipFilePath, string sourceFolder | void | 将指定文件夹压缩为ZIP文件 |
解压文件 | UnpackFiles | string zipFilePath, string outputFolder | void | 将ZIP文件解压到指定目录 |
7. CSV文件操作类 (CSVHelper
)
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
导出数据到CSV | ToCSV | List dataList | string | 将数据列表导出为CSV格式字符串 |
保存CSV文件 | SaveToFile | string filePath | void | 将CSV格式字符串保存为文件 |
8. 类型辅助类 (ClassHelper
)
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
设置属性显示名称 | SetDisplayName | Type type, string propertyName, string displayName | void | 给指定类的属性设置自定义显示名称 |
设置属性是否可见 | SetBrowsable | Type type, string propertyName, bool isBrowsable | void | 设置指定属性在设计时是否可见 |
设置属性分类 | SetCategory | Type type, string propertyName, string category | void | 给指定属性设置分类信息 |
9. 事件管理类 (EventHelper
)
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
注册事件 | RegisterEvent | EventHandler handler | void | 注册一个事件处理程序 |
触发事件 | TriggerEvent | object sender, EventArgs e | void | 触发已注册的事件 |
移除事件 | UnregisterEvent | EventHandler handler | void | 移除一个事件处理程序 |
10. 数据验证类 (ValidationHelper
)
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
验证对象有效性 | ValidateObject | object obj | bool | 验证传入的对象是否符合预定义的规则 |
获取验证错误信息 | GetValidationErrors | object obj | List | 获取对象的验证错误信息列表 |
11. 配置文件操作类 (ConfigFileHelper
)
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
读取配置 | ReadConfig | string filePath | T | 从指定路径读取配置文件并返回强类型对象 |
保存配置 | SaveConfig | T config | void | 将强类型对象保存为配置文件 |
12. 扩展方法类
扩展方法通常用于增强现有类的功能,以下是一些常用扩展方法:
功能描述 | 方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
对象克隆 | Clone | T source | T | 深度克隆对象 |
列表排序 | SortByProperty | List list, Func<T, object> selector | List | 根据指定属性对列表进行排序 |