自用基础库QW.Base介绍

起因

多年开发,回头一向,轮子一片,能复用的没几个,特整理了一些常用功能归集到一个依赖小的库里。

项目

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:\test\")   //目录是否存在

  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;就可以使用本方法

说明

本库参考了很多代码,大部份都标注了参考感谢,如果缺漏,请提醒我,感谢大家!

 

posted @ 2020-05-12 10:15  子意  阅读(124)  评论(0编辑  收藏  举报