.NET 7 RC1 发布,生产可用的候选版本

来源: OSCHINA
编辑: 罗奇奇
2022-09-15 07:40:00

.NET 7 RC 1 发布了, .NET 7 将有两个支持生产的候选版本 (RC), 这是第一个。

下载 .NET 7 Release Candidate 1

.NET 7 RC 1 中的新增功能:

支持在 Windows Server 2019 上默认使用 ICU 库

Windows Server 2019 缺乏 ICU 支持。在 Windows Server 2019 上运行的想要使用 ICU 的服务和应用程序需要部署 ICU 并启用一些配置才能使用它,如文档中所述。

在 .NET 7.0 rc1 中,Windows Server 2019 将默认支持 ICU。

参考: dotnet/runtime#62329dotnet/runtime#72656dotnet/docs#30319

提高 DateTime 和 DateTimeOffset 中 Add 方法的计算精度

改进了 DateTime 和 DateTimeOffset 方法: AddDays、AddHours、AddMinutes、AddSeconds、AddMilliseconds 和 AddMicroseconds 的计算精度,以产生更好的结果。

参考:dotnet/runtime#66815dotnet/runtime#73198

可以从 app.config 文件初始化 System.Diagnostics.TraceSource 

为了更容易从 .NET Framework 迁移,添加了对从应用程序配置文件初始化 TraceSource 和相关类型(包括 Switch 和 TraceListener)的支持。请注意,必须进行显式调用才能通过 System.Diagnostics.TraceConfiguration.Register() 启用此功能。

参考:dotnet/runtime#23937dotnet/runtime#73087 

支持 XmlSchema 导入/导出

.NET 7 RC1 在 DataContractSerializer 空间中带来了导入和导出 XmlSchema 的回归。 该 API 尽可能类似于 .NET Framework  4.8 API,以便从 .NET Framework 轻松移植代码。 

该导出功能是与 .NET 7.0 SDK 中的 DataContractSerializer 一起内置的功能,在名为 System.Runtime.Serialization.Schema 的附加包中可用。 (这个包不是 7.0 SDK 的一部分,因为它依赖于 System.CodeDom,也作为一个单独的包提供。)

参考:dotnet/runtime#72243 和 4.8 导出导入 API 文档 。

检测 HTTP/2 和 HTTP/3 协议错误

使用带有默认 SocketsHttpHandler 的 HttpClient 时,现在可以检测 HTTP/2 和 HTTP/3 协议错误代码。 此功能对于 gRPC 等高级应用程序很有用。

用法

调用 HttpClient 方法时:

using var client = new HttpClient();

try
{
    var response = await client.GetStringAsync("https://myservice");
}
catch (HttpRequestException ex) when (ex.InnerException is HttpProtocolException protocolException)
{
    Console.WriteLine("HTTP2/3 protocol error code: " + protocolException.ErrorCode);
}

调用响应流方法时

using var client = new HttpClient();
using var response = awaitclient.GetAsync("https://myservice", HttpCompletionOption.ResponseHeadersRead);
using var responseStream = await response.Content.ReadAsStreamAsync();
using var memoryStream = new MemoryStream();

try
{
    await responseStream.CopyToAsync(memoryStream);
}
catch (HttpProtocolException protocolException)
{
    Console.WriteLine("HTTP2/3 protocol error code: " + protocolException.ErrorCode);
}

参考:dotnet/runtime#70684 。

 

有关该候选版本的其他功能可以查看 Issue #7716 ,或查看更新博客

展开阅读全文
1 收藏
分享
0 评论
1 收藏
分享
返回顶部
顶部