.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#62329、dotnet/runtime#72656 和 dotnet/docs#30319。
提高 DateTime 和 DateTimeOffset 中 Add 方法的计算精度
改进了 DateTime 和 DateTimeOffset 方法: AddDays、AddHours、AddMinutes、AddSeconds、AddMilliseconds 和 AddMicroseconds 的计算精度,以产生更好的结果。
参考:dotnet/runtime#66815 和 dotnet/runtime#73198
可以从 app.config 文件初始化 System.Diagnostics.TraceSource
为了更容易从 .NET Framework 迁移,添加了对从应用程序配置文件初始化 TraceSource 和相关类型(包括 Switch 和 TraceListener)的支持。请注意,必须进行显式调用才能通过 System.Diagnostics.TraceConfiguration.Register() 启用此功能。
参考:dotnet/runtime#23937 和 dotnet/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 ,或查看更新博客。