文章目录
Tool.Net 2.2.2 版本更新了
他是一个正式版本,可以用于线上运营,使用 Apache-2.0 证书授权,可放心使用,
提示:以下是本篇文章正文内容,下面案例可供参考
一、更新内容
备注年前大版本
-
用于注册请求流大小限制的上限。(示例为解决上传文件的大小)
public void ConfigureServices(IServiceCollection services)
{
app.SetFormOptions(optins =>
{
optins.MultipartBodyLengthLimit = 60000000;用于处理上传文件大小被限制的问题。
})
} -
优化 ApiOut.View 方法,默认视图存储位置(示例:\wwwroot\Views\类名\方法名.html)
-
新增 ApiOut.File, 下载文件流的函数。
-
新增 IFormFile.Save 保存上传的文件
-
新增 OnResult 函数接口,同时实现了 (ApiAshx/MinApi)两种路由模式
-
优化 SQL 所有可以传入 where 条件的接口均允许传入( (NOLOCK)WHERE)该参数。
-
优化 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 = “保存成功!” });
} -
新增 ApiOut.Redirect, 重定向URL的函数。
-
多个已知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 模块,不会影响框架性能,反之可能因此提高性能。
(因为版本差异导致的诸多不确定因素,因此解决。)
- Microsoft.AspNetCore.Diagnostics
- Microsoft.AspNetCore.Http
- Microsoft.AspNetCore.Routing
- Microsoft.Extensions.Configuration.Json
- Microsoft.Extensions.DependencyInjection.Abstractions
取消计划
-
项目减小化,推出 Tool.Core 包, 去除所有引用独立包,增加对各种场景的适用性。
理由:因采用 .net5 自生SDK包,解决了引用包过多的问题,现已解决Web部分SDK的引用。
后续方向
-
增加SQL部分的异步调用。
-
可能考虑移除掉验证码部分的模块,达到取消掉最后一个SDK包的引用目的。(如果确定取消,源代码将会公开)
加粗样式