分类 .NET 下的文章

.NET 6中的LINQ功能改进

.NET6为LINQ添加了多个新API,在本文中,我们将始终使用User类逐一演示这些添加到LINQ中的内容:

public class User
{
    public string Name { get; set; }
    public int Age { get; set; }
}

阅读剩余部分

.NET 6默认middleware支持HTTP日志记录

在以前,通常需要我们自己编写middleware记录HTTP请求和响应。

而在.NET 6中默认就有已经实现好的middleware,添加了对HTTP日志记录的支持。

要想启用HTTP日志记录middleware十分简单:

app.UseHttpLogging(); 

运行程序,发现没有任何日志!?

阅读剩余部分

ASP.NET Core WebApi判断当前请求的API类型

上次,我们判断了《当前请求是否健康检查API》,避免其写入日志。

但是,对于我们自己开发的API来说,最好也能来区分,比如调试用API,就不需要再写调用日志了。

DisplayName方式

直接判断路由地址的方式就不考虑了。

本来想使用和上次一样的DisplayName方式,但是发现没有地方为Controller设置。

查看源码,发现ActionDisplayName属性的实现在ControllerActionDescriptor.cs

阅读剩余部分

ASP.NET Core WebApi判断当前请求的是健康检查API

为了性能监控的目的,我们使用了Middleware记录所有请求的Log。实现代码如下:

public class RequestLoggingMiddleware
{
    ...
    public async Task Invoke(HttpContext context)
    {
        try
        {
            await _next(context);
        }
        finally
        {
            //Log
        }
    }
}

同时,我们在服务中加入了健康检查API,用于定时访问检查服务状态。

阅读剩余部分

.NET 6的Nuget包验证

我们常常需要将.NET类库打包成Nuget包,以便多个项目公用。

一旦修改类库,尽管代码可以运行,并成功打包成新版本,看起来一切正常,但是你无法保证该更改是安全且兼容的。

而在.Net 6中,提供了包验证工具,帮助我们检测这一点。

使用方式也非常简单,只需修改项目文件,加上EnablePackageValidation属性:

<EnablePackageValidation>true</EnablePackageValidation>

阅读剩余部分