发布 Furion
和 Furion.Tools
和 Furion.Xunit
v4.6.5
版本
包含以下功能更新:
long
序列化丢精度的 JsonConvert
内置转换器,.AddLongTypeConverters()
4.6.5 #I5VJHC aded58dapp.EnableBuffering()
拓展,解决 Request.Body
不能重复读问题 4.6.5 aded58dDateOnlyJsonConverter
和 DateOnlyOffsetJsonConverter
处理.AddDateFormatString()
.AddDateTimeTypeConverters()
4.6.5 aded58d.ToDictionary()
拓展不支持 JObject
类型问题 4.6.5 #I5VJHC a11bf8dLoggingMonitor
处理 long
类型丢精度问题 4.6.5 #I5VJHC aded58dMicrosoft.AspNetCore.Mvc.NewtonsoftJson
拓展,原因是太多人使用了 4.6.5 aded58dSqlSugar
拓展包和脚手架至 5.1.3.27
版本v4.6.5
版本文档samples
依赖至 v4.6.5
版本Furion
案例同步到 v4.6.5
版本Gitee
和 Github
发布 Release-v4.6.5
版本https://gitee.com/dotnetchina/Furion/pulls/622
https://gitee.com/dotnetchina/Furion/commit/aded58d0bc587d1a1844382c66ec1ab3de96be7c
https://gitee.com/dotnetchina/Furion/commit/a11bf8d8b6bb90b41b8394d8bca35aa3539239e6
long
序列化丢精度处理有时候我们需要将 long
类型序列化时转为 string
类型,防止 JavaScript
出现精度溢出问题,这个时候可以尝试使用以下方法解决:
System.Text.Json
方式services.AddControllersWithViews()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.Converters.AddLongTypeConverters();
});
Newtonsoft.Json
方式.AddNewtonsoftJson(options =>
{
options.SerializerSettings.Converters.AddLongTypeConverters();
})
Dictionary<,>
类型包含 long
处理默认情况下,System.Text.Json
不支持 Dictionary<,>
类型的序列化设置 Converter
操作,这个时候可以换成 Newtonsoft.Json
处理,如:
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.Converters.AddLongTypeConverters();
})
同时创建 NewtonsoftJsonSerializerProvider.cs
文件写入即可:
namespace YourProject.Core;
public class NewtonsoftJsonSerializerProvider : IJsonSerializerProvider, ISingleton
{
public string Serialize(object value, object jsonSerializerOptions = null)
{
return JsonConvert.SerializeObject(value, (jsonSerializerOptions ?? GetSerializerOptions()) as JsonSerializerSettings);
}
public T Deserialize<T>(string json, object jsonSerializerOptions = null)
{
return JsonConvert.DeserializeObject<T>(json, (jsonSerializerOptions ?? GetSerializerOptions()) as JsonSerializerSettings);
}
public object GetSerializerOptions()
{
return App.GetOptions<MvcNewtonsoftJsonOptions>()?.SerializerSettings;
}
}
这个版本新特性很多~
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Furion
v4.6.5 版本发布,诸多改进修复v4.6.5
版本细节:https://gitee.com/dotnetchina/Furion/issues/I5VPD1 2022.10.14v4.6.4
版本细节:https://gitee.com/dotnetchina/Furion/issues/I5VIAQ 2022.10.13v4.6.3
版本细节:https://gitee.com/dotnetchina/Furion/issues/I5V99T 2022.10.12v4.6.2
版本细节:https://gitee.com/dotnetchina/Furion/issues/I5V6UE 2022.10.12v4.6.1
版本细节:https://gitee.com/dotnetchina/Furion/issues/I5UYQW 2022.10.11v4.6.0
版本细节:https://gitee.com/dotnetchina/Furion/issues/I5UQZ7 2022.10.10新特性
LoggingMonitor
支持 FileResult
类型监听 4.6.0 bf9c0b1LogMessage
结构 UseUtcTimestamp
字段,解释日志记录时间格式是 UTC
还是 LOCAL
时间 4.6.1 aab0371LoggingMonitor
支持序列化忽略指定属性名或属性类型 4.6.1 81c6343long
序列化丢精度的 JsonConvert
内置转换器,.AddLongTypeConverters()
4.6.5 #I5VJHC aded58dapp.EnableBuffering()
拓展,解决 Request.Body
不能重复读问题 4.6.5 aded58d突破性变化
.NET 6.0.10
和 .NET 7 RC2
4.6.2 6bb2fadMicrosoft.AspNetCore.Mvc.NewtonsoftJson
拓展,原因是太多人使用了 4.6.5 aded58d"some log".SetCategory(name)
拓展方法DateOnlyJsonConverter
和 DateOnlyOffsetJsonConverter
处理foreach
改为 Parallel.ForEach
,吞吐量提升近 4 倍 4.6.4 7384c9c.AddDateFormatString()
.AddDateTimeTypeConverters()
4.6.5 aded58d.SetTimeout
和 [Timeout]
配置方法,采用全局统一配置问题修复
4.5.9+
版本新增的 IncludeScopes
配置导致日志上下文失效 4.6.0 4a76841sql
共用 DbParameters
出现冲突问题 4.6.0 #I5UO2H.CreateLogger
创建的日志对象无法应用上下文问题 4.6.0 ec4838cWorker Serivce
中进行构造函数注入,原因是注册为 Scope
范围作用域 4.6.3 974f835SQL Server
不支持 TLS 1.2
协议问题 4.6.3 974f835.ToDictionary()
拓展不支持 JObject
类型问题 4.6.5 #I5VJHC a11bf8dLoggingMonitor
处理 long
类型丢精度问题 4.6.5 #I5VJHC aded58d其他更改
文档
JSON
序列化处理 long
类型说明文档JSON
序列化文档、远程请求文档Furion v4.6.5
版本最大的改变就是内置了 long
精度序列化处理了,因为这个需求越来越大了,所以干脆框架底层处理,以后出问题直接找 Furion 即可。
好几个小伙伴反馈【赞助商广告】太占地方了,能不能关闭或者缩小。关闭是不能的,毕竟他们赞助了 Furion。
所以我们换一种方式,可以缩小:
登录 后才可以发表评论