XiaoFeng
C#公用类库,包含了Redis,Memcached,Json,Xml,ADO.NET数据库操作兼容以下数据库(SQLSERVER,MYSQL,ORACLE,达梦,SQLITE,ACCESS,OLEDB,ODBC等数十种数据库),正则表达式,QueryableX(ORM)和EF无缝对接,FTP,网络日志,调度器(作业),网络库(SocketServer,WebSocketServer,SocketClient,WebSocketClient),IO操作,加密算法(AES,DES,DES3,MD5,RSA,RC4,SHA等常用加密算法),超级好用的配置管理器,应用池,类型转换等功能。
Install / Use
/learn @zhuovi/XiaoFengREADME
XiaoFeng

Nuget:XiaoFeng
| QQ群号 | QQ群 | 公众号 |
| :----:| :----: | :----: |
| 748408911 |
|
|
源码: https://github.com/zhuovi
教程: https://www.eelf.cn
C#公用类库,包含了Redis,Memcached,Json,Xml,ADO.NET数据库操作兼容以下数据库(SQLSERVER,MYSQL,ORACLE,达梦,SQLITE,ACCESS,OLEDB,ODBC等数十种数据库),正则表达式,QueryableX(ORM)和EF无缝对接,FTP,网络日志,调度器(作业),网络库(SocketServer,WebSocketServer,SocketClient,WebSocketClient),IO操作,加密算法(AES,DES,DES3,MD5,RSA,RC4,SHA等常用加密算法),超级好用的配置管理器,应用池,类型转换等功能。
感谢支持
<!--| JetBrains | [](https://jb.gg/OpenSourceSupport) | | Visual Studio | [](https://visualstudio.microsoft.com/) |-->| 名称 | LOGO |
| :----:| :----: |
| JetBrains | |
| Visual Studio |
|
XiaoFeng
XiaoFeng generator with XiaoFeng.
Install
.NET CLI
$ dotnet add package XiaoFeng --version 5.3.0
Package Manager
PM> Install-Package XiaoFeng -Version 5.3.0
PackageReference
<PackageReference Include="XiaoFeng" Version="5.3.0" />
Paket CLI
> paket add XiaoFeng --version 5.3.0
Script & Interactive
> #r "nuget: XiaoFeng, 5.3.0"
Cake
// Install XiaoFeng as a Cake Addin
#addin nuget:?package=XiaoFeng&version=5.3.0
// Install XiaoFeng as a Cake Tool
#tool nuget:?package=XiaoFeng&version=5.3.0
XiaoFeng 类库包含库
| 命名空间 | 所属类库 | 开源状态 | 说明 | 包含功能 | | :----| :---- | :---- | :----: | :---- | | XiaoFeng.Prototype | XiaoFeng.Core | :white_check_mark: | 扩展库 | ToCase 类型转换<br/>ToTimestamp,ToTimestamps 时间转时间戳<br/>GetBasePath 获取文件绝对路径,支持Linux,Windows<br/>GetFileName 获取文件名称<br/>GetMatch,GetMatches,GetMatchs,IsMatch,ReplacePatten,RemovePattern 正则表达式操作<br/> | | XiaoFeng.Net | XiaoFeng.Net | :white_check_mark: | 网络库 | XiaoFeng网络库,封装了Socket客户端,服务端(Socket,WebSocket),根据当前库可轻松实现订阅,发布等功能。| | XiaoFeng.Http | XiaoFeng.Core | :white_check_mark: | 模拟请求库 | 模拟网络请求 | | XiaoFeng.Data | XiaoFeng.Core | :white_check_mark: | 数据库操作库 | 支持SQLSERVER,MYSQL,ORACLE,达梦,SQLITE,ACCESS,OLEDB,ODBC等数十种数据库 | | XiaoFeng.Cache | XiaoFeng.Core | :white_check_mark: | 缓存库 | 内存缓存,Redis,MemcachedCache,MemoryCache,FileCache缓存 | | XiaoFeng.Config | XiaoFeng.Core | :white_check_mark: | 配置文件库 | 通过创建模型自动生成配置文件,可为xml,json,ini文件格式 | | XiaoFeng.Cryptography | XiaoFeng.Core | :white_check_mark: | 加密算法库 | AES,DES,RSA,MD5,DES3,SHA,HMAC,RC4加密算法 | | XiaoFeng.Excel | XiaoFeng.Excel | :white_check_mark: | Excel操作库 | Excel操作,创建excel,编辑excel,读取excel内容,边框,字体,样式等功能 | | XiaoFeng.Ftp | XiaoFeng.Ftp | :white_check_mark: | FTP请求库 | FTP客户端 | | XiaoFeng.IO | XiaoFeng.Core | :white_check_mark: | 文件操作库 | 文件读写操作 | | XiaoFeng.Json | XiaoFeng.Core | :white_check_mark: | Json序列化,反序列化库 | Json序列化,反序列化库 | | XiaoFeng.Xml | XiaoFeng.Core | :white_check_mark: | Xml序列化,反序列化库 | Xml序列化,反序列化库 | | XiaoFeng.Log | XiaoFeng.Core | :white_check_mark: | 日志库 | 写日志文件,数据库 | | XiaoFeng.Memcached | XiaoFeng.Memcached | :white_check_mark: | Memcached缓存库 | Memcached中间件,支持.NET框架、.NET内核和.NET标准库,一种非常方便操作的客户端工具。实现了Set,Add,Replace,PrePend,Append,Cas,Get,Gets,Gat,Gats,Delete,Touch,Stats,Stats Items,Stats Slabs,Stats Sizes,Flush_All,Increment,Decrement,线程池功能。| | XiaoFeng.Redis | XiaoFeng.Redis | :white_check_mark: | Redis缓存库 | Redis中间件,支持.NET框架、.NET内核和.NET标准库,一种非常方便操作的客户端工具。实现了Hash,Key,String,ZSet,Stream,Log,List,订阅发布,线程池功能; | | XiaoFeng.Threading | XiaoFeng.Core | :white_check_mark: | 线程库 | 线程任务,线程队列 | | XiaoFeng.Mvc | XiaoFeng.Mvc | :x: | 低代码WEB开发框架 | .net core 基础类,快速开发CMS框架,真正的低代码平台,自带角色权限,WebAPI平台,后台管理,可托管到服务运行命令为:应用.exe install 服务名 服务说明,命令还有 delete 删除 start 启动 stop 停止。 | | XiaoFeng.Proxy | XiaoFeng.Proxy | :white_check_mark: | 代理库 | 开发中 | | XiaoFeng.TDengine | XiaoFeng.TDengine | :white_check_mark: | TDengine 客户端 | 开发中 | | XiaoFeng.GB28181 | XiaoFeng.GB28181 | :white_check_mark: | 视频监控库,SIP类库,GB28181协议 | 开发中 | | XiaoFeng.Onvif | XiaoFeng.Onvif | :white_check_mark: | 视频监控库Onvif协议 | XiaoFeng.Onvif 基于.NET平台使用C#封装Onvif常用接口、设备、媒体、云台等功能, 拒绝WCF服务引用动态代理生成wsdl类文件 , 使用原生XML扩展标记语言封装参数,所有的数据流向都可控。 | | FayElf.Plugins.WeChat | FayElf.Plugins.WeChat | :white_check_mark: | 微信公众号,小程序类库 | 微信公众号,小程序类库。 | | XiaoFeng.Mqtt | XiaoFeng.Mqtt | :white_check_mark: | MQTT协议 | XiaoFeng.Mqtt中间件,支持.NET框架、.NET内核和.NET标准库,一种非常方便操作的客户端工具。实现了MQTT客户端,MQTT服务端,同时支持TCP,WebSocket连接。支持协议版本3.0.0,3.1.0,5.0.0。 | | XiaoFeng.Modbus | XiaoFeng.Modbus | :white_check_mark: | MODBUS协议 | MODBUS协议,支持RTU、ASCII、TCP三种方式进行通信,自动离线保存服务端数据 | | XiaoFeng.DouYin | XiaoFeng.DouYin | :white_check_mark: | 抖音开放平台SDK | 抖音开放平台接口 | | XiaoFeng.KuaiShou | XiaoFeng.KuaiShou | :white_check_mark: | 快手开放平台SDK | 快手开放平台接口 | | XiaoFeng.Mvc.AdminWinDesk | XiaoFeng.Mvc.AdminWinDesk | :white_check_mark: | XiaoFeng.Mvc后台皮肤 | 模仿windows桌面后台皮肤 | | FayElf.Cube.Blog | FayElf.Cube.Blog | :white_check_mark: | XiaoFeng.Mvc开发的技术博客 | 使用低代码开发框架(XiaoFeng.Mvc)+Windows后台皮肤(XiaoFeng.Mvc.AdminWinDesk),开发的一个博客平台。 | | XiaoFeng.Ofd | XiaoFeng.Ofd | :white_check_mark: | OFD读写库 | OFD 读写处理库,支持文档的生成、文档编辑、文档批注、数字签名、文档合并、文档拆分、文档转换至PDF、文档查询等功能。 | | XiaoFeng.Templates | XiaoFeng.Templates | :white_check_mark: | 项目模板 | XiaoFeng.Mvc 低代码开发框架,用于创建 ASP.NET Core 应用程序的项目模板。此模板还可以用于 REST API 此模板还可以用于 REST API、Socket 项目模板、Mqtt 项目模板。| | XiaoFeng.Opc | XiaoFeng.Opc | :white_check_mark: | OPC读写库 | 通用的opc ua客户端类库,基于netstandard2.0;netstandard2.1;创建,基于官方opc ua基金会跨平台库创建,封装了节点读写、批量节点读写、引用读取、历史数据读取、方法调用、节点订阅、批量订阅、获取节点可用编码、获取指定节点的所有引用等操作。|
XiaoFeng 扩展方法
万能的类型转换扩展方法 ToCast<T>()
当前方法可转换任何值类型包括 对象类型,数组类型。
在转换方法前,首选会验证当前值,类型和要转换的类型是否相同,接着就是验证,它是否符合目标类型的格式,如果不符合会转换成目标类型的默认值,也可以设置默认值。
数据类型相互转换如:字符串转整型,字符串转日期,字符串转UUID
用法示例:
using XiaoFeng;
int a = "10".ToCast<int>();
Int64 b = "10".ToCast<Int64>();
double c = "10".ToCast<double>();
DateTime d = "2022-01-19".ToCast<DateTime>();
float e = "".ToCast<float>(1.0);
int f = (int)"".GetValue(typeof(int));
Guid g = "58AFBEB5791311ECBF49FA163E542B11".ToCast<Guid>();
Guid h = "58AFBEB5-7913-11EC-BF49-FA163E542B11".ToCast<Guid>();
还有一系列专一处理字符串转相关类型的方法,如:
Int16 a = "1".ToInt16();
int b = "2".ToInt32();
Int64 c = "3".ToInt64();
UInt16 d = "4".ToUInt16();
UInt32 e = "5".ToUInt32();
UInt64 f ="6".ToUInt64();
float e = "7.2".ToFloat();
DateTime g = "2022-01-19 12:32".ToDateTime();
double h = "6.3".ToDouble();
byte i = "2".ToByte();
Boolean j = "1".ToBoolean();
Boolean k = "true".ToBoolean();
Boolean l = "False".ToBoolean();
Decimal m = "3.658".ToDecimal();
long n = "2584512".ToLong();
Guid o = "58AFBEB5791311ECBF49FA163E542B11".ToGuid();
Guid p = "58AFBEB5-7913-11EC-BF49-FA163E542B11".ToGuid();
获取对象基础类型 GetValueType
用法实例
var a = "a".GetValueType();
var b = 10.GetValueType();
var c = new{a="a",b="b"}.GetValueType();
var d = new Dictionary<String,String>().GetValueType();
返回的是一个枚举类型 ValueTypes
/// <summary>
/// 值类型枚举
/// </summary>
public enum ValueTypes
{
/// <summary>
/// 空
/// </summary>
[Description("空")]
Null = 0,
/// <summary>
/// 值
/// </summary>
[Description("值")]
Value = 1,
/// <summary>
/// 类
/// </summary>
[Description("类")]
Class = 2,
/// <summary>
/// 结构体
/// </summary>
[Description("结构体")]
Struct = 3,
/// <summary>
/// 枚举
/// </summary>
[Description("枚举")]
Enum = 4,
/// <summary>
/// 字符串
/// </summary>
[Description("字符串")]
String = 5,
/// <summary>
/// 数组
/// </summary>
[Description("数组")]
Array = 6,
/// <summary>
/// List
/// </summary>
[Description("List")]
List = 7,
/// <summary>
/// 字典
/// </summary>
[Description("字典")]
Dictionary = 8,
/// <summary>
/// ArrayList
/// </summary>
[Description("ArrayList")]
ArrayList = 9,
/// <summary>
/// 是否是集合类型
/// </summary>
[Description("是否是集合类型")]
IEnumerable = 10,
/// <summary>
/// 字典类型
/// </summary>
[Description("字典类型")]
IDictionary = 11,
/// <summary>
/// 匿名类型
/// </summary>
[Description("匿名类型")]
Anonymous = 12,
/// <summary>
/// DataTable
/// </summary>
[Description("DataTable")]
DataTable = 13,
/// <summary>
/// 其它
/// </summary>
[Description("其它")]
Other = 20
}
字符串匹配提取
用法实例
IsMatch 当前扩展方法 主要是 当前字符串是否匹配上正则表达式,比如,匹配当前字符串是否是QQ号码,代码如下:
if("7092734".IsMatch(@"^\d{5-11}$"))
Console.WriteLine("是QQ号码格式.");
else
Console.WriteLine("非QQ号码格式.");
输出结果为:是QQ号码格式。
因为 字符串 "7092734"确实是QQ号码。
IsNotMatch 当前方法其实就是 !IsMatch,用法和IsMatch用法一样。
Match 当前扩展方法返回的是Match,使用指定的匹配选项在输入字符串中搜索指定的正则表达式的第一个匹配项。
Matches 当前扩展方法返回的是使用指定的匹配选项在指定的输入字符串中搜索指定的正则表达式的所有匹配项。
这三个方法是最原始最底层的方法,其它扩展都基于当前三个方法中的一个或两个来实现的。
GetMatch 扩展方法返回结果是:提取符合模式的数据所匹配的第一个匹配项所匹配的第一项或a组的数据
GetPatterns 扩展方法返回结果是:提取符合模式的数据所有匹配的第一项数据或a组数据
GetMatchs 扩展方法返回结果是:提取符合模式的数据所匹配的第一项中所有组
