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

.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 ,或查看更新博客

展开阅读全文
发表评论

相关文章

  • 0