Tool.Net-2.2.2

在这里插入图片描述


Tool.Net 2.2.2 版本更新了

他是一个正式版本,可以用于线上运营,使用 Apache-2.0 证书授权,可放心使用,


提示:以下是本篇文章正文内容,下面案例可供参考

一、更新内容

备注年前大版本

  1. 用于注册请求流大小限制的上限。(示例为解决上传文件的大小)
    public void ConfigureServices(IServiceCollection services)
    {
    app.SetFormOptions(optins =>
    {
    optins.MultipartBodyLengthLimit = 60000000;用于处理上传文件大小被限制的问题。
    })
    }

  2. 优化 ApiOut.View 方法,默认视图存储位置(示例:\wwwroot\Views\类名\方法名.html)

  3. 新增 ApiOut.File, 下载文件流的函数。

  4. 新增 IFormFile.Save 保存上传的文件

  5. 新增 OnResult 函数接口,同时实现了 (ApiAshx/MinApi)两种路由模式

  6. 优化 SQL 所有可以传入 where 条件的接口均允许传入( (NOLOCK)WHERE)该参数。

  7. 优化 ApiVal 增加第二个条件,允许指定Key值,处理部分无法通过代码实现的写法。(示例如下:)
    public async Task Upload(
    [ApiVal(Val.File)] IFormFile file_data,
    [ApiVal(Val.Header, “.123”)] string abc,
    [ApiVal(Val.Header, “User-Agent”)] string agent)
    {
    await file_data.Save(AppContext.BaseDirectory + “Upload\” + file_data.FileName);//顺带实现了上传保存文件的示例
    return await ApiOut.JsonAsyn(new { mag = “保存成功!” });
    }

  8. 新增 ApiOut.Redirect, 重定向URL的函数。

  9. 多个已知Bug优化。
    以上是大致更新说明,详情还请执行查看api文档。

二、新增函数使用步骤

SetFormOptions方法

代码如下(示例):

public void ConfigureServices(IServiceCollection services)
{ 
    app.SetFormOptions(optins => 
    {
      optins.MultipartBodyLengthLimit = 60000000;用于处理上传文件大小被限制的问题。
    }) 
}

ApiOut.View方法

		public async Task<IApiOut> Index()
        {
            return await ApiOut.ViewAsyn();//获取默认路径\wwwroot\Views\类名\Index.html
            return await ApiOut.ViewAsyn("cs.html");// 获取指定文件路径\wwwroot\cs.html
        }

ApiOut.File方法

//说明id1的来源:routes.MapRoute(
//                  name: "default",
//                  template: "Api/{controller=GetMin}/{action=GetSql}/{id1?}");
//注册路由时的参数
		public async Task<IApiOut> Download([ApiVal(Val.RouteKey)] string id1)
        {
            return await ApiOut.FileAsyn(id1, System.IO.File.OpenRead(AppContext.BaseDirectory + "Download\\" + id1));
        }

IFormFile.Save方法

 public async Task<IApiOut> Upload([ApiVal(Val.File)] IFormFile file_data)
 {
    await file_data.Save(AppContext.BaseDirectory + "Upload\\" + file_data.FileName);//顺带实现了上传保存文件的示例
    return await ApiOut.JsonAsyn(new { mag = "保存成功!" });
 }

OnResult方法

 		//ApiAshx
        protected override void OnResult(Ashx ashx)
        {
            
        }
 		//MinApi
        protected override void OnResult(AshxRouteData ashxRoute)
        {
            
        }

ApiVal特性增强

public async Task<IApiOut> Get(
    [ApiVal(Val.Header, ".123")] string abc, 
    [ApiVal(Val.Header, "User-Agent")] string agent)
{
    return await ApiOut.JsonAsyn(new { mag = "保存成功!", UserAgent = agent });
}

ApiOut.Redirect

public async Task<IApiOut> Get([ApiVal(Val.Query)] string url)
{
    return await ApiOut.RedirectAsyn(url);
}

移除SDK

本次移除全部 Web SDK 模块,不会影响框架性能,反之可能因此提高性能。

(因为版本差异导致的诸多不确定因素,因此解决。)
  1. Microsoft.AspNetCore.Diagnostics
  2. Microsoft.AspNetCore.Http
  3. Microsoft.AspNetCore.Routing
  4. Microsoft.Extensions.Configuration.Json
  5. Microsoft.Extensions.DependencyInjection.Abstractions

取消计划

  1. 项目减小化,推出 Tool.Core 包, 去除所有引用独立包,增加对各种场景的适用性。

     理由:因采用 .net5 自生SDK包,解决了引用包过多的问题,现已解决Web部分SDK的引用。
    

后续方向

  1. 增加SQL部分的异步调用。

  2. 可能考虑移除掉验证码部分的模块,达到取消掉最后一个SDK包的引用目的。(如果确定取消,源代码将会公开)
    加粗样式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值