# UtilsSharp.Standard **Repository Path**: flyger757/UtilsSharp.Standard ## Basic Information - **Project Name**: UtilsSharp.Standard - **Description**: .net Core 公共工具类 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-05-20 - **Last Updated**: 2024-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **由于国内访问github有时不稳定,后期也可以访问码云获取,欢迎star**:https://gitee.com/agoling/UtilsSharp.Standard **详细使用说明文档**:https://agoling.github.io/UtilsSharpDoc/#/ # UtilsSharp帮助类 > 这篇文章是《UtilsSharp .NET框架》专辑的**第1篇**文章,使用的`.NET Standard`版本为`2.0`。 > `.NET Standard2.0` 版本支持`.NET Framework 4.6.1`及以上版本、`.NET core 2.0`及以上版本、`Mono5.4`及以上版本、`Xamarin.iOS10.14`及以上版本、`Xamarin.Mac3.8`及以上版本、`Xamarin.Android8.0`及以上版本、通用 Windows 平台10.0.16299及以上版本,UtilsSharp.Standard工具帮助类库是基于`.NET standard2.0`封装的,里面包括:出入参规范类、钉钉机器人帮助类、图片帮助类、文件帮助类、随机数帮助类、对象映射帮助类、字符串帮助类、验证码生成帮助类、时间帮助类、中国日历帮助类、任务下发帮助类、正则帮助类等,后面将持续更新中… > > **可以在`Nuget` 搜索`UtilsSharp`包并安装使用** #### 一、命名规范 ##### 1、返回参小驼峰命名法 除第一个单词之外,其他单词首字母大写,例如:`getKeyword`,`getOccResponse` ##### 2、方法命名规范 获取单个对象的方法用`Get`作为前缀,如:`GetRecord` 获取多个对象的方法用`Search`作为前缀,如:`SearchRecord` 添加的方法用`Add`作为前缀,如:`AddRecord` 修改的方法用`Modify`作为前缀,如:`ModifyRecord` (添加+修改)的方法用`Save`作为前缀,如:`SaveRecord` 删除的方法用`Delete`作为前缀,如:`DeleteRecord` 清空的方法用`Clear`作为前缀,如:`ClearRecord` 判断类的方法用`Is`作为前缀,如:`IsRegister`,`IsExist` ##### 3、变量命名规范 变量取名应见名识意,尽量用英文单词,而不是缩写 例如:`PageIndex`, `PageSize` ##### 4、入参、出参类名统一,入参+Request,出参+Response 例如: ```c# /// /// 会员登录请求参数 /// public class LoginRequest { /// /// 用户名 /// public string UserName { set; get; } /// /// 密码 /// public string UserPsw { set; get; } } /// /// 会员登录返回参数 /// public class LoginResponse { /// /// 访问口令 /// public string Token { set; get; } /// /// 用户名 /// public string UserName { set; get; } } ``` #### 二、请求接口返回格式:BaseResut<T> ##### 1、请求方法例子: ```c# /// /// 登入 /// /// 登入参数 /// public BaseResult Login(LoginRequest request) { var result = new BaseResult(); try { if (string.IsNullOrEmpty(request.UserName)) { result.SetError("用户名不能为空", BaseStateCode.参数不能为空); return result; } if (string.IsNullOrEmpty(request.UserPsw)) { result.SetError("密码不能为空", BaseStateCode.参数不能为空); return result; } /*…这边省略登入业务代码…*/ var response = new LoginResponse {UserName = request.UserName, Token = Guid.NewGuid().ToString("N")}; result.SetOkResult(response,"登入成功"); return result; } catch (Exception ex) { var errorCode = Guid.NewGuid().ToString("N"); //这边用errorCode作为日志主键,把错误信息写入到日志 var errorMessage = errorCode.ToMsgException(); result.SetError(errorMessage, BaseStateCode.TryCatch异常错误); return result; } } ``` ##### 2、请求返回的成功结构: ```json { "result": { "token": "ecbcc910fab0497c933d69906188ad0e", "userName": "xxx" }, "code": 200, "msg": "登入成功" } ``` #### 三、请求列表接口基础出入参,入参:BasePage,有排序的入参:BaseSortPage,出参:BasePagedResult<T> ##### 1、分页请求的基础参数 ```c# { keyword:"", //关键词搜索 pageIndex:1, //当前页码 pageSize:10, //分页数量 } ``` ##### 2、请求方法例子: ```c# /// /// 分页搜索 /// /// 登入参数 /// public BasePagedResult Search(BaseSortPage request) { var result = new BasePagedResult(); try { var response = new BasePagedInfoResult() { PageIndex = request.PageIndex, PageSize = request.PageSize }; if (string.IsNullOrEmpty(request.Keyword)) { result.SetError("搜索关键词不能为空!",BaseStateCode.参数不能为空); return result; } /*…这边省略查询业务代码…*/ /*…以下模拟从数据库获取数据…*/ response.List = new List { new LoginResponse() {Token = Guid.NewGuid().ToString(), UserName = "xxx1"}, new LoginResponse() {Token = Guid.NewGuid().ToString(), UserName = "xxx2"}, new LoginResponse() {Token = Guid.NewGuid().ToString(), UserName = "xxx3"} }; response.PageIndex = request.PageIndex; response.PageSize = request.PageSize; response.TotalCount = 100; response.Params = request; result.SetOkResult(response); return result; } catch (Exception ex) { var errorCode = Guid.NewGuid().ToString("N"); //这边用errorCode作为日志主键,把错误信息写入到日志 var errorMessage = errorCode.ToMsgException(); result.SetError(errorMessage, BaseStateCode.TryCatch异常错误); return result; } } ``` ##### 3、分页请求返回的成功结构: ```json { "result": { "pageIndex": 1,//当前页码 "pageSize": 10,//分页数量 "totalCount": 100,//总条数 "totalPages": 10,//总页数 "orderBy": null,//排序 "hasPreviousPage": false,//是否有上一页 "hasNextPage": true,//是否有下一页 "list": [ //返回的列表数据 { "token": "411349e5-d345-4bfa-8022-d109fc483aeb", "userName": "xxx1" }, { "token": "3a72e1d0-73dc-48d8-972b-7dde831101c3", "userName": "xxx2" }, { "token": "9d690366-cc61-4ca5-9f08-f23972ebe27a", "userName": "xxx3" } ], "params": { "sortField": null, "sortType": null, "pageIndex": 1, "pageSize": 10, "keyword": "连衣裙" } }, "code": 200, "msg": "请求成功" } ``` #### 四、错误码 | 返回码 | 标识 | 说明 | | ------ | ------------- | -------------- | | 200 | success | 请求成功 | | 999 | defaultTips | 业务提示 | | 2000 | apiError | 接口异常 | | 3000 | networkError | 网络异常 | | 4000 | notLogin | 未登录 | | 4010 | authExpire | 授权到期 | | 5000 | exception | 异常错误 | | 6000 | dataNotFound | 数据找不到 | | 6010 | dataNotValid | 数据验证不通过 | | 7000 | businessError | 默认业务性异常 | | 8000 | dbError | 数据库异常 | | 9000 | SystemError | 系统错误 | **详细使用说明文档**:https://agoling.github.io/UtilsSharpDoc/#/