起因
多年开发,回头一向,轮子一片,能复用的没几个,特整理了一些常用功能归集到一个依赖小的库里。
项目
https://gitee.com/u5web/QW.Base
本项目开源免费,支持.net45+,.NetCore 2.2+
常用功能介绍
1.加密辅助
1.1. MD5 支持MD5Base64
var md5hash=MD5Helper.ComputeHash("test");
1.2. Base64
编码:
var a=Base64Helper.Encode("test");
解码:
var a=Base64Helper.Decode("test")
1.3. DES
加密:
var a=DESHelper.Encrypt("待加密字符","密钥");
解密:
var a=DESHelper.Decrypt("密文","密钥");
2.缓存
2.1. 注册缓存组件
QW.Core.Cache.CacheHandlerBuilder.Create() .UseMemoryCache() //使用内置内存缓存方式 .Build();
2.2. 使用缓存
//缓存给值 CacheHandler.Set("test",DateTime.Now.ToString()); //缓存取值 var v = CacheHandler.Get<string>("test");
2.3. 切换缓存组件
如果想别的缓存组件,可以先继承QW.Core.Cache.ICacheHandler,完成缓存的读写方法。然后改注册缓存组件代码
QW.Core.Cache.CacheHandlerBuilder.Create().RegisterHandler(new MyCacheHandler()).Build();
3.简单IOC
3.1. 注册容器中心
QW.Core.IOC.IOCContainerBuilder.Create() .UseDictionaryIOCContainer() //内置字典方式,减少了依赖,但瞬态方式性能不好 .RegisterType<IUser,User>(InstanceLifetimeScope.Singleton) //注入一个单例 .Build();
3.2. 反转实例
var user=QW.Core.IOC.IOCContainer.Resolve<IUser>();
3.3. 切换IOC容器
如果想别的IOC容器,可以先继承QW.Core.IOC.IIOCContainer,完成对应方法。然后改注册容器中心代码
QW.Core.IOC.IOCContainerBuilder .Create() .RegisterHandler(new MyIOCContainer()) .RegisterType<IUser,User>() .Build();
4.Web扩展
4.1. url地址处理辅助,替换url参数示例
QW.Core.Web.URI.Replace("/index?t=1234","t","1255")
4.2. 统一HttpContext,使用QW.Core.Web.HttpContext.Current可以对当前上下文的请求回应做操作,FX直接使用,NetCore需要注册静态上下文
public class Startup { public void ConfigureServices(IServiceCollection services) { //需要nuget引入对应包 services.AddHttpContextAccessor(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { //注入http上下文 app.UseStaticHttpContext(); } }
5.文件
5.1. 注册文件中心
QW.Core.File.FileHandlerBuilder.Create() .UseLocalFileHandler() //使用内置本地文件系统 .Build();
5.2. 使用
FileHandler.CreateFile("d:1.txt", Bytes); //创建文件 var bytes=FileHandler.GetFileContent("d:1.txt"); //获取文件内容 FileHandler.ExistFolder("d: est") //目录是否存在
5.3. 切换文件系统
如果想别的文件系统(如阿里云OSS),可以先继承QW.Core.File.IFileHandler,完成对应方法。然后改注册文件中心代码
QW.Core.File.FileHandlerBuilder.Create().RegisterHandler(new MyFileHandler()).Build();
6.日志
6.1. 注册日志中心
QW.Core.Log.LogHandlerBuilder.Create() .Uselog4netHandler("log4net.config") //使用内置log4net方式,log4net.config请参考官方 .Build();
6.2. 使用
LogHandler.Error(new Exception("我是一个异常")); LogHandler.Info(new Exception("我是一个信息")); LogHandler.Warn(new Exception("我是一个警告")); LogHandler.Debug(new Exception("我是一个调试"));
6.3. 切换日志组件
如果想别的日志组件(如NLog),可以先继承QW.Core.Log.ILogHandler,完成对应方法。然后改注册日志中心代码
QW.Core.Log.LogHandlerBuilder.Create().RegisterHandler(new MyLogHandler()).Build();
7.常用扩展
对系统基础类有的一些扩展,命名空间在原类命名空间下,如string,本扩展对应的命名空间就在System.使用时只要引用了本库,在可以使用string的地方就可以使用对string的扩展方法。如
"asdfasdfasdf".Cut(10,".."); //只需要引用本库,using System;就可以使用本方法
说明
本库参考了很多代码,大部份都标注了参考感谢,如果缺漏,请提醒我,感谢大家!