C#开发利器:SharpBoxesCore全解析

发布于:2025-05-22 ⋅ 阅读:(21) ⋅ 点赞:(0)

SharpBoxesCore 是一个基于 C# 的开源开发工具库,旨在为开发者提供一系列常用功能模块和辅助类,以提高开发效率、减少重复代码编写,并增强项目的可维护性和扩展性。该库集成了多种实用工具类和通用扩展方法,适用于桌面应用、Web 项目以及插件式架构等多种场景。

⚓️Nuget下载链接

安装

Install-Package SharpBoxesCore

📦 主要功能模块

  1. 缓存操作类

    • 提供静态缓存操作类,简化数据存储和访问流程。
  2. 反射加载 DLL 类 (LibLoadHelper)

    • 支持动态加载 DLL 文件并创建指定接口的实例。
    • 可用于实现插件系统或模块化架构。
  3. HTTP 请求帮助类 (HTTPHelper)

    • 封装 HTTP 请求(GET、POST 等),简化网络通信操作。
  4. 配置文件处理

    • IniHelper:读写 INI 格式配置文件。
    • XMLHelper:支持 XML 配置处理。
    • ConfigFileHelper:读取和保存应用程序配置。
  5. 压缩与解压 (ZipHelper)

    • 支持将文件夹打包为 ZIP 文件,或将 ZIP 文件解压到目标目录。
  6. CSV 数据操作 (CSVHelper)

    • 支持生成 CSV 文件并导出集合数据,适用于报表导出等场景。
  7. 属性动态配置 (ClassHelper)

    • 设置属性显示名称、可见性、分类等元信息,适用于数据绑定或 UI 显示优化。
  8. 事件管理 (EventHelper)

    • 提供轻量级事件发布订阅机制,便于组件间通信。
  9. 数据验证 (ValidationHelper)

    • 提供常用的数据格式验证逻辑(如邮箱、电话号码等)。
  10. C# 和 XAML 扩展方法

    • 包括自动生成带有 OnPropertyChanged 的完整属性语句。
    • 支持自动环绕 Task.Run(() => { }) 操作,提升异步编程效率。

✨ 使用该库的优点

1. 高效开发

  • 集成大量常用功能,避免重复造轮子。
  • 提供封装良好的工具类,开发者可直接调用,显著缩短开发周期。

2. 模块化设计

  • 各功能模块独立存在,开发者可根据需求选择性引入。
  • 例如:仅需使用 ZipHelperIniHelper 时,无需引入整个库的所有依赖。

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 根据指定属性对列表进行排序


网站公告

今日签到

点亮在社区的每一天
去签到