.NET7之MiniAPI(特别篇) .NET Preview5参数绑定
.NET Preview5中,给MiniAPI带来了一个参数绑定的功能,看到这个功能,我一下子就开心了,因为它提供了一个把松散的传入数据或注入功能耦合在一起的能力,并且可以根据自己的需求自由组合,结合上原来的Fromxxx(Name="")]使用,尤其和谐。
看一下下面的例子,如果每个请求都带有X-UUID,可以直接放在父类里,这样的组合是不是更加灵活多变。
using Microsoft.AspNetCore.Mvc;
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/test", ([AsParameters] Order order) =>
{
order.Logger?.LogInformation(order.UUID);
});
app.Run();
class Header
{
[FromHeader(Name = "X-UUID")]
public string? UUID { get; set; }
}
class Order : Header
{
[FromQuery(Name = "no")]
public int OrderNo { get; set; }
public ILogger<Order>? Logger { get; set; }
}
绑定的参数,不只是class,还可以是其他自定义类型。
结构
struct Order
{
[FromHeader(Name = "X-UUID")]
public string? UUID { get; set; }
[FromQuery(Name = "no")]
public int OrderNo { get; set; }
public ILogger<Order>? Logger { get; set; }
}
记录
record Order
{
[FromHeader(Name = "X-UUID")]
public string? UUID { get; set; }
[FromQuery(Name = "no")]
public int OrderNo { get; set; }
public ILogger<Order>? Logger { get; set; }
}
结构记录
record struct Order
{
[FromHeader(Name = "X-UUID")]
public string? UUID { get; set; }
[FromQuery(Name = "no")]
public int OrderNo { get; set; }
public ILogger<Order>? Logger { get; set; }
}
虽然这只是.NET的一小步,但给开发人员带了一大步,使整个API开发体验得到了,特别对数据接收体验提升了一大截。(以前只是body中的json转成实体类哦)
想要更快更方便的了解相关知识,可以关注微信公众号
![](https://img2023.cnblogs.com/blog/1101861/202212/1101861-20221206015504203-1206103498.png)
****欢迎关注我的asp.net core系统课程****
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524