Xmtool是基于.netcore开发过程中经常需要用到的工具类,目前收集的相关工具类涉及Json、Xml、正则表达式常用判断、加解密、Http请求、日期时间,数据类型、动态对象等,会在使用过程中不断更新,逐渐丰富。
使用方法很简单,只需要将根据Github说明安装依赖即可;下面将现有Xmtool中包含的具体工具类和相关方法介绍给大家,有需要的小伙伴可以自行下载。
Xmtool工具集合库通过Xmtool静态类统一对外提供服务,所有的详细工具类都可以通过Xmtool返回对应工具类实例,用户通过实例调用具体工具类的API。
Xmtool API
方法:
1. 获取编码加解密工具类
CryptoTool Crypto()
2. 获取日期时间工具类
DateTimeTool DateTime()
3. 获取Hash工具类
HashTool Hash()
4. 获取正则表达式工具类
RegexTool Regex()
5. 获取类型相关工具类
TypeTool Type()
6. 获取Xml工具类
XmlTool Xml()
属性:
1. 返回Json工具类
JsonTool Json
2. 返回Web工具类
WebTool Web
CryptoTool API
1. 对字符串进行Base64编码并返回结果
string Base64Encode(string text, string encoding = "utf-8")
2. 解码Base64字符串并返回结果
string Base64Decode(string base64Text, string encoding = "utf-8")
3. AES加密方法
string AESEncode(string text, string key, string encoding = "utf-8")
4. AES解密方法
string AESDecode(string aesText, string key, string encoding = "utf-8")
DateTimeTool API
1. 获取10位UTC时间戳
long GetUtcTimestamp10()
2. 获取13位UTC时间戳
long GetUtcTimestamp13()
3. 根据10位UTC时间戳得到本地日期时间对象
DateTime GetLocalDateTimeFromUtcTimestamp10(long ts)
4. 根据13位UTC时间戳得到本地日期时间对象
DateTime GetLocalDateTimeFromUtcTimestamp13(long ts)
5. 检查字符串时间范围格式是否合法
bool CheckStringTimeSpan(string timespan, bool throwError = true)
6. 根据时间范围字符串转换为时间段对象
TimeSpan GetTimeSpanFromString(string timespan,bool throwError = true)
HashTool API
1. MD5哈希计算
string MD5(string text, string encoding = "utf-8")
2. SHA1哈希计算
string SHA1(string text, string encoding = "utf-8")
3. SHA256计算
string SHA256(string text, string encoding = "utf-8")
4. SHA384计算
string SHA384(string text, string encoding = "utf-8")
5. SHA512计算
string SHA512(string text, string encoding = "utf-8")
RegexTool API
1. 判断是否手机号
bool IsMobile(string value)
2. 判断是否电子邮箱
bool IsEmail(string value)
3. 判断是否网址
bool IsUrl(string value)
4. 判断是否IPv4地址
bool IsIP(string value)
5. 判断是否数值
bool IsNumber(string value)
6. 判断是否整数
bool IsInteger(string value)
7. 判断是否正整数
bool IsPositiveInteger(string value)
8. 判断是否自然数
bool IsNaturalInteger(string value)
9. 判断是否小数
bool IsDecimal(string value)
TypeTool API
1. 判断指定对象是否为List类型
bool IsList(object obj)
XmlTool API
1. Xml节点遍历方法(从文件加载内容)
void Iterate(string file, XmlNodeInfoGetter callback = null)
2. Xml节点遍历方法(从字符串加载内容)
void IterateFromString(string content, XmlNodeInfoGetter callback = null)
3. XmlNodeInfoGetter回调方法定义
bool XmlNodeInfoGetter(XmlNodeInfo nodeInfo);
4. XmlNodeInfo对象
属性:
Path:返回当前节点路径,如:/root/person
LocalName:返回当前节点的本地名称
FullName:返回当前节点的全名称,包括命名空间和本地名称
NamespaceURI:返回当前节点的命名空间URI
IsRoot:是否根节点
IsNode:返回当前节点是否元素节点
IsEndNode:遍历过程会两次经过一个节点,一次开始,一次结束,该属性返回是否为结束一次的遍历
IsTextNode:返回当前节点是否为文本节点
IsCDATANode:返回当前节点是否为CDATA节点
Level:节点级别
Text:返回当前节点的文本内容
CData:返回CDATA节点的内容
AttributeCount:返回节点属性的数量
Line:返回当前节点在文件中的行数
方法:
当前节点是否包括属性信息
bool HasAttributes()
获取指定索引位置的属性的内容
string GetAttribute(int index)
返回指定名称的属性的内容
string GetAttribute(string name)
返回指定名称和命名空间的属性的内容
string GetAttribute(string localName, string namespaceURI)
5. 反序列化动态对象的方法(从文件加载内容)
dynamic Deserialize(string file, bool includeRoot = false)
6. 反序列化动态对象的方法(从字符串加载内容)
dynamic DeserializeFromString(string xml, bool includeRoot = false)
JsonTool API
属性:
1. 获取Json配置文件解析器实例
JsonConfigParser ConfigParser()
JsonConfigParser API
1. 添加要解析的Json配置文件,增加多个配置文件,配置文件中有相同项,后添加的优先。
JsonConfigParser AddJsonFile(string path)
2. 将添加的Json配置文件内容解析为动态对象,动态对象为DynamicObjectExt实例
dynamic Parse(string jsonStr=null)
DynamicObjectExt 动态对象
DynamicObjectExt是对DynamicObject的扩展。使用时,可以直接进行属性赋值,并可通过内置方法读、写、判断和删除等操作。
dynamic obj = new DynamicObjectExt();
obj.Name = "wangxm";
obj.Age = 18;
if (obj.Has("Age"))
{
//TODO
}
方法:
1. 尝试设置属性内容
bool TrySetValue(string name, object value)
2. 尝试读取属性内容
bool TryGetValue(string name, out object result)
3. 根据路径设置属性内容
bool SetValueByPath(string path, object value)
4. 判断属性是否存在
bool Has(string key)
5. 判断路径是否存在
bool HasPath(string path)
6. 删除指定属性
bool Remove(string key)
7. 删除指定路径
bool RemovePath(string path)
8. 将对象序列化为Json字符串
string ToString()
9. 将对象序列化为XML字符串
string ToXMLString(string defaultNS = "")
属性:
1. 获取对象所有属性
Dictionary<string, object>.KeyCollection Keys
2. 以索引器形式通过key获取对应属性内容
dynamic this[string key]
WebTool API
1. 获取HttpClientExt对象实例
HttpClientExt Client(string name="default")
2. 获取Web安全操作对象
HttpSecurity Security()
HttpClientExt API
方法:
1. 增加默认请求头,对后续所有请求起作用
HttpClientExt AddDefaultHeader(string name, string value)
2. 增加临时性请求头,仅在本次请求起作用
HttpClientExt AddRequestHeader(string name, string value)
3. 设置JSON格式请求体内容
HttpClientExt SetJsonContent(string content)
4. 设置JSON格式请求体内容
HttpClientExt SetJsonContent(dynamic content)
5. 提交一个Get请求,并获取请求返回结果
HttpResponseExt GetJsonAsync(string requestUri)
4. 提交一个Get请求,并获取请求返回结果
HttpResponseExt GetJson(string requestUri)
注:Post、Put、Delete、Head、Options相关请求方法请参照GetJsonAsync、GetJson。
属性:
1. 获取或设置超时时间
TimeSpan Timeout
2. 获取或设置请求基本地址
Uri BaseAddress
HttpResponseExt API
属性:
1. 获取请求的状态码
HttpStatusCode StatusCode
2. 获取请求反馈的字符串内容
string Content
3. 将请求反馈的字符串按照Json格式解析,并返回解析后的动态对象(如果字符串不是Json格式将抛出异常)
dynamic Json
4. 将请求反馈的字符串按照Xml格式解析,并返回解析后的动态对象(如果字符串不是Xml格式将抛出异常)
dynamic Xml
HttpSecurity API
1. XSS安全过滤方法
string Xss(string str)