# WxUtile **Repository Path**: nhcode/wx-utile ## Basic Information - **Project Name**: WxUtile - **Description**: 在C#开发过程中通常情况下会需要一些对字符串。特殊的数据格式入json数据、xml数据等字符串数据的解析与操作;而开应用程序时;程序员需要重复的去编写对应的数据解析程序;这个过程是繁琐而复杂的。 为了解决这些繁琐重复的编程工作,特此开发此工具软件,通过该工具软件可方便的调用对应的方法来实现针对数据的不同功能进行操作与处理。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-07-15 - **Last Updated**: 2023-07-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README WxUtile工具软件 一、 概述 在C#开发过程中通常情况下会需要一些对字符串。特殊的数据格式入json数据、xml数据等字符串数据的解析与操作;而开应用程序时;程序员需要重复的去编写对应的数据解析程序;这个过程是繁琐而复杂的。 为了解决这些繁琐重复的编程工作,特此开发此工具软件,通过该工具软件可方便的调用对应的方法来实现针对数据的不同功能进行操作与处理。 该工具总共分为几个模块进行设计,attributes特性模块、const常量模块、data数据模块、Log日志模块、Requests数据请求模块、String操作模块。 二、 Attributes特性模块 该模块完成对应特性工具功能实现,主要完成针对数据模块下对象转换成SQL语句映射数据库表格的相关属性注解。 三、 Const常量模块 定义常用的字符串以及相关的固定值常量 1. sra加密常用字段常量 2. 数据库字段类型常量 3. 请求状态常量 这些常量都是固定值而且在其他地方会用到的。 四、 Data数据模块 该模块完成对数据的操作以及构建消息结构的相关工具类型。 一、 构建一个针对.net语言结构转换为SQL表结构语句的特性方法,主要实现功能是将.net结构对象转换sql语句并通过ef框架写入到数据库中,在通过ef框架进行数据存储功能。 二、 实现对数据列表的查询与分页算法,分页算法公式为:页数=数据总条数/每页数,其中如果存在余数时,页数等于数据总条数/每页数的商+1;请求对应页数的公式为:先计算起始数据,然后计算后续页数。每页数据=每页数据条数*(需要获取页码-1)的数据索引,然后后推数据条数为每页数据条数的数据,如果不足则全部。 三、 实现对信息应答的数据结构体 四、 实现一个方法将数据存储到磁盘的一种方式,该方式为先将数据转换为对应json数据格式或者xml数据格式,然后通过字符串加密方式将对应的数据进行加密,然后通过数据存储对象进行数据写入到硬盘。需要读取数据时通过数据存储庐江读取到数据,然后进行字符串解密和数据格式解析并将数据解析成对应的数据对象使用。 五、 实现数搜多功能的模块,该模块可将列表内的数据符合相应方式的数据筛选出来你。 六、 Log日志模块 实现日志功能,系统出现的操作日志以及相关信息通过文件存储方式记录并将其写入到对应目录的log文件内。 七、 Requests数据请求模块 实现功能为c#程序模拟http请求,实现get和post请求方式。 实现通过httpcontext获取对应的用户客户端IP地址的功能 八、 Strings操作模块 该模块主要是针对string数据进行拓展以及相关数据处理的方法集合,包含针对string的数据加密语数据解密功能;生成rsa公私钥密码对;对特定的string字符串数据进行rsa的签名以及签名验证功能。针对json字符串的解析功能。 九、 使用手册 程序版本:v1.0.0 程序作者:蒋会文 开发完成时间:2022年3月3日 Attributes WxUtile.Attributes.ExplainAttribute(Class) 属性解释 WxUtile.Attributes.ExplainAttribute.Value(属性) 解释值 WxUtile.Attributes.ExplainAttribute(System.String)(构造函数) 属性解释 解释值(属性名称[Value])) WxUtile.Attributes.NotNullAttribute(Class) 注释程序属性不允许为空值 WxUtile.Attributes.SQLAttribute(Class) 数据表字段 WxUtile.Attributes.SQLAttribute.SQLAttributeName(属性) 数据库表字段 WxUtile.Attributes.SQLAttribute(System.String)(构造函数) 数据库字段属性 字段名称(属性名称[SQLAttributeName])) Const WxUtile.Const.WxConstants(Class) sra加密常用字段常量 WxUtile.Const.WxConstants.DATE_TIME_FORMAT(属性) WxUtile.Const.WxConstants.DATE_TIMEZONE(属性) WxUtile.Const.WxConstants.CHARSET_UTF8(属性) WxUtile.Const.WxConstants.CHARSET_GBK(属性) WxUtile.Const.WxConstants.FORMAT_JSON(属性) WxUtile.Const.WxConstants.FORMAT_XML(属性) WxUtile.Const.WxConstants.MSG_ID(属性) WxUtile.Const.WxConstants.VERSION_HEADER_NAME(属性) WxUtile.Const.WxDataType(Class) 数据库字段类型 WxUtile.Const.WxMsgConst(Class) 时间:2021年12月31日16:16:36 WxUtile.Const.WxMsgConst.OK(属性) 请求成功 WxUtile.Const.WxMsgConst.FAILED(属性) 请求失败 Data WxUtile.Data.WxAttributType(Class) 数据表类型结构 WxUtile.Data.WxAttributType.AttributName(属性) 表字段名称 WxUtile.Data.WxAttributType.AttributTypeName(属性) 表字段数据类型 WxUtile.Data.WxAttributType.IsNot(属性) 是否允许为空 WxUtile.Data.WxAttributType.Remark(属性) 表字段属性注释 WxUtile.Data.WxAttributType.PropertiesNameSQL(属性) 字段属性SQL命令 WxUtile.Data.WxDataUtile(Class) 时间:2021年12月31日16:16:36 WxUtile.Data.WxDataUtile.GetFYData``1(System.Linq.IQueryable{``0},System.Int32,System.Int32,System.Int32@)(方法) 数据分页 数据源(属性名称[items])) 页码(属性名称[page])) 条数(属性名称[limit])) 数据总长度(属性名称[count])) 返回: WxUtile.Data.WxDataUtile.GetFYData``1(System.Collections.Generic.IEnumerable{``0},System.Int32,System.Int32,System.Int32@)(方法) 数据分页 数据源(属性名称[items])) 页码(属性名称[page])) 条数(属性名称[limit])) 数据总长度(属性名称[count])) 返回: WxUtile.Data.WxMsg(Class) 时间:2021年12月31日16:16:36 WxUtile.Data.WxMsg.Set``1(System.Boolean,System.String,WxUtile.Enums.WxEMsg,``0)(方法) 消息对象 状态(属性名称[State])) 消息(属性名称[Msg])) 状态代码(属性名称[Code])) 数据(属性名称[Data])) 返回: WxUtile.Data.WxMsg.Set``1(System.Boolean,System.String,WxUtile.Enums.WxEMsg,System.Int32,``0)(方法) 消息对象 状态(属性名称[State])) 消息(属性名称[Msg])) 状态代码(属性名称[Code])) 数据(属性名称[Data])) 数据条数(属性名称[Count])) 返回: WxUtile.Data.WxMsg.Set(System.Boolean,System.String,WxUtile.Enums.WxEMsg)(方法) 消息对象 状态(属性名称[State])) 消息(属性名称[Msg])) 状态代码(属性名称[Code])) 返回: WxUtile.Data.WxMsg.Set``1(System.String,System.Boolean,System.String,WxUtile.Enums.WxEMsg,``0)(方法) 消息对象 状态(属性名称[State])) 消息(属性名称[Msg])) 状态代码(属性名称[Code])) 数据(属性名称[Data])) 返回: WxUtile.Data.WxMsg.Set``1(System.String,System.Boolean,System.String,WxUtile.Enums.WxEMsg,System.Int32,``0)(方法) 消息对象 状态(属性名称[State])) 消息(属性名称[Msg])) 状态代码(属性名称[Code])) 数据(属性名称[Data])) 数据条数(属性名称[Count])) 返回: WxUtile.Data.WxMsg.Set(System.String,System.Boolean,System.String,WxUtile.Enums.WxEMsg)(方法) 消息对象 状态(属性名称[State])) 消息(属性名称[Msg])) 状态代码(属性名称[Code])) 返回: WxUtile.Data.SignDataMsg`1.State(属性) 状态 WxUtile.Data.SignDataMsg`1.Msg(属性) 消息 WxUtile.Data.SignDataMsg`1.Code(属性) 状态代码 WxUtile.Data.SignDataMsg`1.Data(属性) 数据 WxUtile.Data.SignDataMsg`1.Count(属性) 数据总条数 WxUtile.Data.SignDataMsg`1.Sign(属性) 签名 WxUtile.Data.SignDataMsg`1.SignType(属性) 签名方法 WxUtile.Data.WxObjStorage(Class) 时间: 2022年1月7日17:02:11 WxUtile.Data.WxObjStorage.ToStorage``1(``0,System.String)(方法) 将对象序列化到指定文件 数据源(属性名称[t])) 存储地址(属性名称[FileName])) WxUtile.Data.WxObjStorage.ToStorage``1(``0)(方法) 将程序列化到磁盘 数据源(属性名称[t])) WxUtile.Data.WxObjStorage.GetStorage``1(System.String,``0@)(方法) 从指定路径读取对象资料 存储地址(属性名称[FileName])) 返回数据对象(属性名称[t])) 返回:是否成功读取 WxUtile.Data.WxObjStorage.GetStorage``1(``0)(方法) 从磁盘读取对象 源数据(属性名称[t])) 返回: WxUtile.Data.WxSearching(Class) 检索数据是否包含对应匹配字符串 WxUtile.Data.WxSearching.ToDataSearch``1(System.Collections.Generic.List{``0},System.String)(方法) 检索对应资料是否存在 源资料(属性名称[ts])) 包含资料(属性名称[Searching])) 返回: WxUtile.Data.WxSearching.IsSearching``1(``0,System.String)(方法) 判断对象内容是否包含某内容资料 源数据(属性名称[t])) 搜索内容(属性名称[Searching])) 返回: WxUtile.Data.WxSearching.GetSearching``1(``0,System.String)(方法) 获取对象内容是否包含某内容资料 对象(属性名称[t])) 搜索内容(属性名称[Searching])) 返回: WxUtile.Data.WxTBType.PrimaryKey(属性) 主键值 WxUtile.Data.WxTBType.SqlString(属性) 数据SQL命令字符串 WxUtile.Data.WxTBType.TbName(属性) 表格名称 WxUtile.Data.WxTBType.TableProperties(属性) 属性信息集合 WxUtile.Data.WxToSql.GetSql(System.Type)(方法) 获取表对象对应的SQL命令函数 (属性名称[type])) 返回: WxUtile.Date.WxDate(Class) 时间:2021年12月31日16:16:36 WxUtile.Date.WxDate.GetTimestamp(方法) 获取当前时间的世界戳(单位秒) 返回: WxUtile.Date.WxDate.GetTimestamp(System.DateTime)(方法) 需要转换的日期 需要转换的日期(属性名称[dateTime])) 返回: WxUtile.Date.WxDate.Get(方法) 获取毫秒值(毫秒级) 返回: WxUtile.Date.WxDate.GetMillisecondToSecond(System.Double)(方法) 需要转换的毫秒 需要转换的毫秒(属性名称[Millisecond])) WxUtile.Date.WxDate.GetSecondToMinutes(System.Double)(方法) 秒钟转分钟 需要转换的分钟(属性名称[Second])) 返回: WxUtile.Date.WxDate.GetMinutesToHour(System.Double)(方法) 分钟转小时 需要转换的小时(属性名称[Minutes])) 返回: WxUtile.Date.WxDate.GetSecondToMillisecond(System.Double)(方法) 需要转换的秒 需要转换的秒(属性名称[Second])) WxUtile.Date.WxDate.GetMinutesToSecond(System.Double)(方法) 分钟转秒钟 需要转换的分钟(属性名称[SecondTo])) 返回: WxUtile.Date.WxDate.GetHourToMinutes(System.Double)(方法) 小时转分钟 需要转换的小时(属性名称[Hour])) 返回: WxUtile.Date.WxDate.GetStrToDatetime(System.String,System.String)(方法) 字符串转时间 需要转换的时间字符串(属性名称[Str])) 需要转换的字符串格式(属性名称[TimeFormat])) 返回: WxUtile.Date.WxDate.GetStrToDatetime(System.String,System.Boolean@)(方法) 字符串转时间 需要转换的时间字符串(属性名称[Str])) 返回转换状态(属性名称[ISTry])) 返回: WxUtile.Date.WxDate.GetStrToDatetime(System.String)(方法) 字符串转时间 需要转换的时间字符串(属性名称[Str])) 返回: WxUtile.Enums.WxEMsg.OK(属性) 请求成功 WxUtile.Enums.WxEMsg.FAILED(属性) 请求失败 Log WxUtile.Log.WxUtileLog(Class) 日志工具 WxUtile.Log.WxUtileLog.ErrRecord(System.Exception,System.Type,System.Int32)(方法) 错误日志记录 错误对象(属性名称[er])) 发生错误对象的type(属性名称[type])) 错误代码(属性名称[CodeNumber])) WxUtile.Log.WxUtileLog.ToLogRecord``1(``0,System.String)(方法) 记录日志 日志内容(属性名称[t])) 记录存地址(属性名称[fileName])) Requests WxUtile.Requests.WxHttp(Class) 时间:2021年12月31日16:16:36 WxUtile.Requests.WxHttp.HttpGet(System.String)(方法) 网络请求:请求方式为Get 请求地址(属性名称[Url])) 返回:返回结果 WxUtile.Requests.WxHttp.HttpGet(System.String,System.Net.CookieContainer@)(方法) 网络请求:请求方式为Get 请求地址(属性名称[Url])) 返回:返回结果 WxUtile.Requests.WxHttp.HttpPost(System.String,System.Net.CookieContainer@,System.String)(方法) 网络请求:请求方式为Post 地址(属性名称[url])) json参数(属性名称[param])) Cookie记录对象(属性名称[myCookieContainer])) 返回: WxUtile.Requests.WxHttp.PostSSL(System.String,System.String,System.String,System.String)(方法) 证书请求接口 证书路径(属性名称[path])) 证书密码(属性名称[password])) 请求地址(属性名称[url])) 参数内容(属性名称[content])) 返回: WxUtile.Requests.WxHttp.HttpPost(System.String,System.String)(方法) 网络请求:请求方式为Post 地址(属性名称[url])) json参数(属性名称[param])) 返回: WxUtile.Requests.WxHttp.GetIP(Microsoft.AspNetCore.Http.HttpContext)(方法) 获取客户端IP地址 (属性名称[HttpContext])) 返回: WxUtile.Requests.WxHttp.SendMsg(Microsoft.AspNetCore.Http.HttpContext,System.Object)(方法) 向前端推送数据 (属性名称[httpContext])) (属性名称[obj])) 返回: WxUtile.Requests.WxHttp.SendMsg(Microsoft.AspNetCore.Http.HttpContext,System.Int32,System.Object)(方法) 向前端推送数据 (属性名称[httpContext])) (属性名称[obj])) 返回: Strings WxUtile.Strings.Encrypts.WxEncrypt(Class) 时间:2021年12月31日16:16:36 WxUtile.Strings.Encrypts.WxEncrypt.GetMD5(System.String)(方法) MD5加密 需要加密的字符串(属性名称[input])) 返回: WxUtile.Strings.Encrypts.WxEncrypt.GetMD5x16(System.String)(方法) MD5加密16位 (属性名称[input])) (属性名称[encode])) 返回: WxUtile.Strings.Encrypts.WxEncrypt.GetMD5(System.Byte[])(方法) 获取MD5值 (属性名称[data])) 返回: WxUtile.Strings.Encrypts.WxEncrypt.GetMD5x16(System.Byte[])(方法) 获取MD5值 (属性名称[data])) 返回: WxUtile.Strings.Encrypts.WxEncrypt.GetSHA1(System.Byte[])(方法) 获取HSA1 (属性名称[data])) 返回: WxUtile.Strings.Encrypts.WxEncrypt.MD5Encrypt(System.String,System.Text.Encoding)(方法) MD5加密 需要加密的字符串(属性名称[input])) 字符的编码(属性名称[encode])) 返回: WxUtile.Strings.Encrypts.WxEncrypt.AesEncrypt(System.String,System.String)(方法) AES 加密 明文(待加密)(属性名称[str])) 密文(属性名称[key])) 返回: WxUtile.Strings.Encrypts.WxEncrypt.AesDecrypt(System.String,System.String)(方法) AES 解密 明文(待解密)(属性名称[str])) 密文(属性名称[key])) 返回: WxUtile.Strings.Encrypts.WxEncrypt.Sign(System.String,System.String,System.String)(方法) 签名(SHA1) 待签名字符串(属性名称[content])) 私钥(属性名称[privateKey])) 编码格式(属性名称[input_charset])) 返回:签名后字符串 WxUtile.Strings.Encrypts.WxEncrypt.signWithRSASHA256(System.String,System.String,System.String)(方法) 签名(SHA256) 待签名字符串(属性名称[content])) 私钥(属性名称[privateKey])) 编码格式(属性名称[input_charset])) 返回:签名后字符串 WxUtile.Strings.Encrypts.WxEncrypt.Sign(System.String,System.String)(方法) 签名(SHA1) 待签名字符串(属性名称[content])) 私钥(属性名称[privateKey])) 返回:签名后字符串 WxUtile.Strings.Encrypts.WxEncrypt.signWithRSASHA256(System.String,System.String)(方法) 签名(SHA256) 待签名字符串(属性名称[content])) 私钥(属性名称[privateKey])) 返回:签名后字符串 WxUtile.Strings.Encrypts.WxEncrypt.verifySHA1(System.String,System.String,System.String,System.String)(方法) 验签 待验签字符串(属性名称[content])) 签名(属性名称[signedString])) 公钥(属性名称[publicKey])) 编码格式(属性名称[input_charset])) 返回:true(通过),false(不通过) WxUtile.Strings.Encrypts.WxEncrypt.verifySHA256(System.String,System.String,System.String,System.String)(方法) 验签 待验签字符串(属性名称[content])) 签名(属性名称[signedString])) 公钥(属性名称[publicKey])) 编码格式(属性名称[input_charset])) 返回:true(通过),false(不通过) WxUtile.Strings.Encrypts.WxEncrypt.verifySHA1(System.String,System.String,System.String)(方法) 验签 待验签字符串(属性名称[content])) 签名(属性名称[signedString])) 公钥(属性名称[publicKey])) 返回:true(通过),false(不通过) WxUtile.Strings.Encrypts.WxEncrypt.verifySHA256(System.String,System.String,System.String)(方法) 验签 待验签字符串(属性名称[content])) 签名(属性名称[signedString])) 公钥(属性名称[publicKey])) 编码格式(属性名称[input_charset])) 返回:true(通过),false(不通过) WxUtile.Strings.Encrypts.WxEncrypt.RsAEncrypt(System.String,System.String,System.String)(方法) 加密 需要加密的字符串(属性名称[resData])) 公钥(属性名称[publicKey])) 编码格式(属性名称[input_charset])) 返回:明文 WxUtile.Strings.Encrypts.WxEncrypt.RsaDecrypt(System.String,System.String)(方法) 解密 加密字符串(属性名称[resData])) 私钥(属性名称[privateKey])) 返回:明文 WxUtile.Strings.Encrypts.WxEncrypt.RsAEncrypt(System.String,System.String)(方法) 加密 需要加密的字符串(属性名称[resData])) 公钥(属性名称[publicKey])) 返回:明文 WxUtile.Strings.Encrypts.WxEncrypt.RsaDecrypt(System.String,System.String,System.String)(方法) 解密 加密字符串(属性名称[resData])) 私钥(属性名称[privateKey])) 编码格式(属性名称[input_charset])) 返回:明文 WxUtile.Strings.Encrypts.WxEncryptUincode(Class) 时间:2021年12月31日16:16:36 WxUtile.Strings.Encrypts.WxEncryptUincode.ToUrlDecode(System.String)(方法) 字符串进行UrlUincode解码 需要转换的字符串(属性名称[Str])) 返回:已转换的字符串 WxUtile.Strings.Encrypts.WxEncryptUincode.ToUrlEncode(System.String)(方法) 需要转换的字符串 需要转换的字符串(属性名称[Str])) 返回:已转换的字符串 WxUtile.Strings.Encrypts.WxEncryptUincode.GetByte(System.String)(方法) 字符串转换为字节数组 需要转换的字符串(属性名称[Str])) 返回:已转换的字符串 WxUtile.Strings.Encrypts.WxEncryptUincode.GetStr(System.Byte[])(方法) 字节数组转换为字符串 需要转换的字节数组(属性名称[Byt])) 返回:已转换的字符串 WxUtile.Strings.Encrypts.WxEncryptUincode.ToDnUnicode(System.String)(方法) Unicode解码 经过Unicode编码的字符串(属性名称[Str])) 返回:正常字符串 WxUtile.Strings.Encrypts.WxEncryptUincode.ToUnicodeFroEnglise(System.String)(方法) Unicode转全英文 (属性名称[Str])) 返回:已转换的字符串 WxUtile.Strings.Encrypts.WxEncryptUincode.ToEngliseForUnicode(System.String)(方法) 英文转Unicode (属性名称[Str])) 返回:已转换的字符串 WxUtile.Strings.Encrypts.WxRSA(Class) 时间:2021年12月31日16:16:36 WxUtile.Strings.Encrypts.WxRSA(System.Int32)(构造函数) 初始化RSA对象 (属性名称[Index])) WxUtile.Strings.Encrypts.WxRSA(构造函数) 初始化RSA对象 WxUtile.Strings.Encrypts.WxRSA.GetPrivateKey(方法) 获取私钥 返回:返回私钥 WxUtile.Strings.Encrypts.WxRSA.GetPublicKey(方法) 获取公钥 返回:返回公钥 WxUtile.Strings.Encrypts.WxRSA.CreateRsaProviderFromPrivateKey(System.String)(方法) 根据私钥创建RSA实例 私钥(属性名称[privateKey])) 返回: WxUtile.Strings.Encrypts.WxRSA.CreateRsaProviderFromPublicKey(System.String)(方法) 根据公钥创建RSA实例 公钥(属性名称[publicKeyString])) 返回: WxUtile.Strings.WxJson(Class) 时间:2021年12月31日16:16:36 WxUtile.Strings.WxJson.ToJson(System.Object)(方法) 将指定的对象序列化成 JSON 数据。 要序列化的对象。(属性名称[obj])) 返回: WxUtile.Strings.WxJson.FromJson``1(System.String)(方法) 将指定的 JSON 数据反序列化成指定对象。 JSON 数据。(属性名称[json])) 返回:转换对象T WxUtile.Strings.WxJson.JsonToObject``1(System.Object)(方法) 特殊用途的转换方法。作用:对象转json,json转对象 需要转换的数据对象(属性名称[obj])) 返回:返回需要转换的对象 WxUtile.Strings.WxParamToStr(Class) 时间:2021年12月31日16:16:36 WxUtile.Strings.WxParamToStr.GetKeyValuePairs``1(``0)(方法) 对象转键值集合 需要转换的对象(属性名称[Obj])) 返回:返回键值数组 WxUtile.Strings.WxParamToStr.GetParamStr(System.Collections.Generic.Dictionary{System.String,System.String},System.String)(方法) 按照ascII码从小到大排序 键值集合(属性名称[paramsMap])) 请求地址(属性名称[Url])) 返回:拼接字符串 WxUtile.Strings.WxParamToStr.GetUrlParamStr(System.String)(方法) 地址拼接 请求地址(属性名称[Url])) 返回:拼接字符串 WxUtile.Strings.WxParamToStr.GetParamStr(System.Collections.Generic.Dictionary{System.String,System.String})(方法) 按照ascII码从小到大排序 键值集合(属性名称[paramsMap])) 返回:拼接字符串 WxUtile.Strings.WxParamToStr.GetBizParamStr(System.Collections.Generic.Dictionary{System.String,System.String})(方法) 按照ascII码从小到大排序 键值集合(属性名称[paramsMap])) 返回:拼接字符串 WxUtile.Strings.WxString(Class) 时间:2021年12月31日16:16:36 WxUtile.Strings.WxString.ToNullStr(System.String)(方法) 去除字符串空指针 需要检测并去除空指针的字符串(属性名称[Srt])) 返回:返回已去除空指针的字符串