ASP.NET

列表

.NET 6新特性试用 | Controller支持IAsyncDisposable #yyds干货盘点#

.NET 6新特性试用 | Controller支持IAsyncDisposable #yyds干货盘点#,前言在.NET中,拥有非托管资源的类通常会实现IDisposable接口,以提供一种同步释放非托管资源的机制。但是,在某些情况下,需要提供一种异步机制来释放非托管资源,这时候可以实现​​IAsyncDisposable​​接口。在实现此接口后,将使用DisposeAsync方法来释放这些非托管资源。但是,在.NET6之前,即使Controller实现了IAsyncDisposable接口,也不会

.NET 6新特性试用 | 热重载 #yyds干货盘点#

.NET 6新特性试用 | 热重载 #yyds干货盘点#,前言在以前的开发模式下,我们修改代码后必须重新编译、重新运行才能看到效果。而热重载提供了这样一种特性,它允许你在项目正在运行时修改代码,并将代码更改立即应用于正在运行的应用程序上。热重载的目的是尽可能节省编辑之间的应用重启次数,从而使你通过减少等待应用重新生成、重启、重新导航到你在应用中的上一个位置等操作的时间来提高工作效率。在.NET6发布之前还有个小插曲,热重载差点从dotnetCLI中被

.NET 6新特性试用 | 文件范围的命名空间 #yyds干货盘点#

.NET 6新特性试用 | 文件范围的命名空间 #yyds干货盘点#,前言在前面的​​《隐式using指令》​​文章中,我们介绍了globalusing,可以减少我们代码文件中的“噪音”,使代码更简洁。今天,我们介绍.NET6中另一个简化代码的方式——​​文件范围的命名空间。​​Demo当我们向项目中添加一个类文件时,定义我们的代码所在命名空间的格式是这样的:namespacexxxNamespaceName{publicclassxxxClass

.NET 6新特性试用 | 自动生成高性能日志记录代码 #yyds干货盘点#

.NET 6新特性试用 | 自动生成高性能日志记录代码 #yyds干货盘点#,前言要想记录日志,常用的方式是访问ILogger实例提供的日志记录方法:privatereadonlyILogger<WeatherForecastController>_logger;publicWeatherForecastController(ILogger<WeatherForecastController>logger){_logger=lo

.NET 6新特性试用 | record struct #yyds干货盘点#

.NET 6新特性试用 | record struct #yyds干货盘点#,前言在以前的文章中,我们介绍过​​record​​​类型,它具有不变性(《​​为什么应该用record来定义DTO​​​》)和值相等性(《​​为什么应该用record来定义DTO(续)​​》)。​​record​​​是引用类型。而在.NET6中,我们可以使用​​recordstruct​​定义值类型。Demo​1.不变性​定义recordstructure的代码非常简单,如下所示:publi

.NET 6新特性试用 | SDK工作负载 #yyds干货盘点#

.NET 6新特性试用 | SDK工作负载 #yyds干货盘点#,前言为了应对.NETSDK能够支持的程序集项目(例如iOS、Android、WASM)的不断增长,从.NET6开始,允许用户仅安装必要的SDK(例如ASP.NETCore),而不是一次性安装“完整版”SDK。这一切的基础,是新的dotnetCLI命令——​​workload​​。Demo​1.列表​首先,列出可安装的工作负载:dotnetworkloadsearch目前支持的工作负载如

.NET 6新特性试用 | 异步流 #yyds干货盘点#

.NET 6新特性试用 | 异步流 #yyds干货盘点#,前言​​IAsyncEnumerable<T>​​​支持返回异步迭代的枚举器,但在.NET6之前,即使在API中使用了​​IAsyncEnumerable<T>​​,它还是使用同步方式输出,首先将结果缓冲到内存中,然后再写入响应中:[HttpGet]publicIAsyncEnumerable<WeatherForecast>Get(){varr

.NET 6新特性试用 | 无需配置开发人员异常页 #yyds干货盘点#

.NET 6新特性试用 | 无需配置开发人员异常页 #yyds干货盘点#,前言在.NET6之前,我们需要在“Startup.cs”文件中手工配置开发人员异常页:if(env.IsDevelopment()){app.UseDeveloperExceptionPage();app.UseSwagger();app.UseSwaggerUI(c=>c.SwaggerEndpoint("/swagger/v1/swagger.json",

.NET 6新特性试用 | ArgumentNullException卫语句 #yyds干货盘点#

.NET 6新特性试用 | ArgumentNullException卫语句 #yyds干货盘点#,前言在前面的文章中(​​《可空引用类型》​​),我们介绍过编译器会帮我们检查空引用,但是仅仅是警告。最好的方式还是在运行时用卫语句进行检查:privatevoidTest(WeatherForecastweatherForecast){if(weatherForecast==null){thrownewArgumentNullException(n