Silkier 让你的C#代码更丝滑, 我们的目标是一行代码 点点点搞定一切。而不是输入分号然后 new 对象,对象初始化, 对象赋值 , 调用方法, 很费劲不是吗?比如 原来:
var client=new SSHClient();
client.Connect("192.168.1.111","root","kissme");
byte[] files=client.DownlaodFile("");
client.Disconnect();
var obj=JsonConver.To<Obj>( System.Text.Encoding.Default.GetString(files));
啰嗦?难搞?现在变了, 我们的目标是:
var obj=builder.Create<SSHClient>("192.168.1.111","root","kissme")
.Connect()
.DownloadFile("file.txt")
.ToJson<Obj>();
当然, 这只是目标, 但是目前还没有完全实现太多, 因为需要一大堆扩展方法.
我们目前具有将数据库查询的DataReader直接 转换为 对象数组的方法, 比如ToList<DemoData> , 或者转为 元组的 方法, 比如ToTupleList<(int id,string name,int age)>() 。
用于与设备对接的大小端转换的 方法, 比如 int 转换为 4字节数据, 以及未来我们会加入3字节整型互转 等等。
关于对象复用以及注入 , 我们加入了类似这种方法, 而不是原来的要创建一大堆东西才能实现,
services.AddObjectPool(() =>
{
return new SdkClient() { BaseURL = "http://10.1.1.52:8080" };
});
针对文件处理方面, 我们针对 FileInfo 扩展了 获取md5值 以及读取数据等, 这样方便 类似GetFiles 获得文件, 然后直接通过linq 一次性实现所有文件的md5 值 , 以及各种分组处理, 还可以 批量读取读写等, 便于一句话或者一个linq 表达式就能搞定一切。
针对字符串方面, 我们增加了 一些 方便的方法, 比如 Right , Left 取字符串, ToTitleCase用来取得标题用的大小写。
针对 并行计算 和 分组并行计算, 我们也提供了简介的方法。 比如
ParallelPart.ForEach(lastINC.ToList(), 10, act =>
{
}
通过此方法, 你可以 lastINC讲 中的数据分成 10组, 每一组一个线程, 然后讲每个元素分别传递给act 用于处理处理。
更多内容正在增加, 如果有兴趣,可以继续深入发掘, 同时可以访问我们的GitHub地址来访问 。
我们的开源地址是 https://github.com/maikebing/Silkier
Nuget https://www.nuget.org/packages?q=silkier
要注意的是, 这些 都已经在生产中使用了一部分扩展经久考验。所以, 可以尝试使用。