ASP.NET Core OData 9 正式发布
我们很高兴地宣布,ASP.NET Core OData 9 已正式发布,并在 NuGet 上提供:[*]Microsoft.AspNetCore.OData 9.0.0
此版本的主要亮点是将 OData .NET 依赖项更新到 8.x 主版本。 通过更新依赖项,我们能够利用 Microsoft.OData.Core 8.x 和 Microsoft.OData.Edm 8.x 版本中引入的改进和新功能。
ASP.NET Core OData 9 版本将仅支持 .NET 8 或更高版本。
OData .NET 8 官方发布公告解决了该版本中引入的主要更改。建议阅读这篇文章以熟悉这些变化。
在本文中,我们将探讨其中一些更改如何影响 ASP.NET Core OData 库,以及如何在可能的情况下切换旧行为。
请求和响应负载中的字符编码
在 OData .NET 8 中,我们引入了一个新的 JSON 编写器,它在后台使用 .NET Utf8JsonWriter 来编写请求和响应有效负载。新的 JSON 编写器速度明显更快,并且是 ASP.NET Core OData 9 中的默认编写器。
您可能会观察到输出负载上的字符编码存在差异。我们将在以下各节中介绍这些差异。
编码的字符子集
在其默认配置中,新的 JSON 编写器不会像旧版 (OData .NET 7) 那样对大量字符进行编码。
默认情况下,旧版 JSON 编写器对所有整数值小于 32 且大于 127 的字符进行编码,基本上都是非 ASCII 字符。这计算出大约 65440 个字符!可以通过将 option 传递给默认的 JSON 编写器工厂构造函数来覆盖旧版 JSON 编写器的默认配置。使用这种替代配置,将对大大减少的字符子集进行编码。ODataStringEscapeOption.EscapeOnlyControls
新的 JSON 编写器使用默认情况下配置了 encoder 选项的基础。编码的结果字符集要小得多。Utf8JsonWriterJavaScriptEncoder.UnsafeRelaxedJsonEscaping
下面是一个插图 – 以 OData 服务的代码示例形式,演示了使用新的 JSON 编写器时输出有效负载的外观:
复制// Modelnamespace Ver900Sample.Models{ public class Order { public int Id { get; set; } public decimal Amount { get; set; } public string Note { get; set; } }}// Controllerusing Microsoft.AspNetCore.OData.Query;using Microsoft.AspNetCore.OData.Results;using Microsoft.AspNetCore.OData.Routing.Controllers;using Ver900Sample.Models;namespace Ver900Sample.Controllers{ public class OrdersController : ODataController { private static readonly List orders = new List { new Order { Id = 1, Amount = 130m, Note = "a - z, α - Ω" }, new Order { Id = 2, Amount = 170.50m, Note = "
来源:https://www.cnblogs.com/yswenli/p/18453938
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页:
[1]