登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情
代码拉取完成,页面将自动刷新
开源项目
>
WEB应用开发
>
Web开发框架
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
9.9K
Star
14.5K
Fork
4.2K
GVP
dotNET China
/
Furion
代码
Issues
0
Pull Requests
0
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
📝 发布 Furion v4.6.6 版本
已完成
#I5WOIV
百小僧
拥有者
创建于
2022-10-20 09:59
### 功能描述 发布 `Furion` 和 `Furion.Tools` 和 `Furion.Xunit` `v4.6.6` 版本 包含以下功能更新: ### 功能清单 - [x] 新增支持特定控制台或特定方法支持独立的序列化配置选项 [797b0bf](https://gitee.com/dotnetchina/Furion/commit/797b0bfe7c702877b1e0f56ee1a97d91fc80c551) - [x] 新增 `Newtonsoft.Json` 反序列化 `0001-01-01 00:00:00` 格式(缺失毫秒)为 `DateTimeOffset` 异常处理 [ea62ce7](https://gitee.com/dotnetchina/Furion/commit/ea62ce7d998980792d6235e577a7e71325401808) - [x] 优化 `axios-utils.ts` 代码,添加全局异常处理 [416c960](https://gitee.com/dotnetchina/Furion/commit/416c960c1921f2bd0a3c98e535bd689d18172ad1) - [x] 发布 `v4.6.6` 版本文档 - [x] 更新示例项目 `samples` 依赖至 `v4.6.6` 版本 - [x] [Replit](https://replit.com/) 网站 `Furion` 案例同步到 `v4.6.6` 版本 - [x] `Gitee` 和 `Github` 发布 `Release-v4.6.6` 版本 - [x] 同步更新日志 ### 代码实现 [https://gitee.com/dotnetchina/Furion/pulls/626](https://gitee.com/dotnetchina/Furion/pulls/626) [https://gitee.com/dotnetchina/Furion/commit/797b0bfe7c702877b1e0f56ee1a97d91fc80c551](https://gitee.com/dotnetchina/Furion/commit/797b0bfe7c702877b1e0f56ee1a97d91fc80c551) [https://gitee.com/dotnetchina/Furion/commit/ea62ce7d998980792d6235e577a7e71325401808](https://gitee.com/dotnetchina/Furion/commit/ea62ce7d998980792d6235e577a7e71325401808) [https://gitee.com/dotnetchina/Furion/commit/416c960c1921f2bd0a3c98e535bd689d18172ad1](https://gitee.com/dotnetchina/Furion/commit/416c960c1921f2bd0a3c98e535bd689d18172ad1) ### 文档更新 **1. 支持特定控制器或特定方法独立序列化配置选项** 很少开发者注意到 `new JsonResult(data)` 实际上有第二个参数的,也就是 `new JsonResult(data, serializerSettings)`,那么可以根据自己的逻辑传递第二个参数,如果不传递则采用全局配置的序列化选项。 `Furion` 框架提供两种处理方式: - 第一种:手动 `new JsonResult` 对象并设置 `serializerSettings` 参数 ```cs showLineNumbers {1,4,13-16} [NonUnify] public IActionResult SpecialApi() { return new JsonResult(new YourRESTfulResult<object> { StatusCode = 200, Succeeded = true, Data = new { Name = "Furion" }, Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() }, new JsonSerializerOptions { PropertyNamingPolicy = null }); } ``` - 第二种:通过 `services.AddUnifyJsonOptions` 配置多个序列化选项 **推荐** 在 `Startup.cs` 中注册一套新的规则: ```cs showLineNumbers {1} services.AddUnifyJsonOptions("special", new JsonSerializerOptions // 如果使用 Newtonsoft.Json => new JsonSerializerSettings { PropertyNamingPolicy = null }); ``` 代码使用: ```cs showLineNumbers {1} [UnifySerializerSetting("special")] public object SpecialApi() { return new { Name = "Furion" } } ``` 其他补充:目前 `Swagger` 暂未提供个别的接口自定义 `schema` 序列化选项。 ----- **2. `DateTimeOffset` 发序列化异常** 以下处理只针对 `Newtonsoft.Json`,数据为 `0001-01-01 00:00:00` 的情形下反序列化为 `DateTimeOffset` 类型报错: ```txt showLineNumbers Could not convert string to DateTimeOffset: 0001-01-01 00:00:00 ``` 相关问题讨论:[https://stackoverflow.com/questions/50628374/json-net-deserializing-datetimeoffset-value-fails-for-datetimeoffset-minvalue-wi/50631270#50631270](https://stackoverflow.com/questions/50628374/json-net-deserializing-datetimeoffset-value-fails-for-datetimeoffset-minvalue-wi/50631270#50631270) - `System.Text.Json` 方式 无需配置 - `Newtonsoft.Json` 方式 ```cs showLineNumbers {3-5} .AddNewtonsoftJson(options => { options.SerializerSettings.MetadataPropertyHandling = MetadataPropertyHandling.Ignore; options.SerializerSettings.DateParseHandling = DateParseHandling.None; options.SerializerSettings.Converters.Add(new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }); }); ```
### 功能描述 发布 `Furion` 和 `Furion.Tools` 和 `Furion.Xunit` `v4.6.6` 版本 包含以下功能更新: ### 功能清单 - [x] 新增支持特定控制台或特定方法支持独立的序列化配置选项 [797b0bf](https://gitee.com/dotnetchina/Furion/commit/797b0bfe7c702877b1e0f56ee1a97d91fc80c551) - [x] 新增 `Newtonsoft.Json` 反序列化 `0001-01-01 00:00:00` 格式(缺失毫秒)为 `DateTimeOffset` 异常处理 [ea62ce7](https://gitee.com/dotnetchina/Furion/commit/ea62ce7d998980792d6235e577a7e71325401808) - [x] 优化 `axios-utils.ts` 代码,添加全局异常处理 [416c960](https://gitee.com/dotnetchina/Furion/commit/416c960c1921f2bd0a3c98e535bd689d18172ad1) - [x] 发布 `v4.6.6` 版本文档 - [x] 更新示例项目 `samples` 依赖至 `v4.6.6` 版本 - [x] [Replit](https://replit.com/) 网站 `Furion` 案例同步到 `v4.6.6` 版本 - [x] `Gitee` 和 `Github` 发布 `Release-v4.6.6` 版本 - [x] 同步更新日志 ### 代码实现 [https://gitee.com/dotnetchina/Furion/pulls/626](https://gitee.com/dotnetchina/Furion/pulls/626) [https://gitee.com/dotnetchina/Furion/commit/797b0bfe7c702877b1e0f56ee1a97d91fc80c551](https://gitee.com/dotnetchina/Furion/commit/797b0bfe7c702877b1e0f56ee1a97d91fc80c551) [https://gitee.com/dotnetchina/Furion/commit/ea62ce7d998980792d6235e577a7e71325401808](https://gitee.com/dotnetchina/Furion/commit/ea62ce7d998980792d6235e577a7e71325401808) [https://gitee.com/dotnetchina/Furion/commit/416c960c1921f2bd0a3c98e535bd689d18172ad1](https://gitee.com/dotnetchina/Furion/commit/416c960c1921f2bd0a3c98e535bd689d18172ad1) ### 文档更新 **1. 支持特定控制器或特定方法独立序列化配置选项** 很少开发者注意到 `new JsonResult(data)` 实际上有第二个参数的,也就是 `new JsonResult(data, serializerSettings)`,那么可以根据自己的逻辑传递第二个参数,如果不传递则采用全局配置的序列化选项。 `Furion` 框架提供两种处理方式: - 第一种:手动 `new JsonResult` 对象并设置 `serializerSettings` 参数 ```cs showLineNumbers {1,4,13-16} [NonUnify] public IActionResult SpecialApi() { return new JsonResult(new YourRESTfulResult<object> { StatusCode = 200, Succeeded = true, Data = new { Name = "Furion" }, Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() }, new JsonSerializerOptions { PropertyNamingPolicy = null }); } ``` - 第二种:通过 `services.AddUnifyJsonOptions` 配置多个序列化选项 **推荐** 在 `Startup.cs` 中注册一套新的规则: ```cs showLineNumbers {1} services.AddUnifyJsonOptions("special", new JsonSerializerOptions // 如果使用 Newtonsoft.Json => new JsonSerializerSettings { PropertyNamingPolicy = null }); ``` 代码使用: ```cs showLineNumbers {1} [UnifySerializerSetting("special")] public object SpecialApi() { return new { Name = "Furion" } } ``` 其他补充:目前 `Swagger` 暂未提供个别的接口自定义 `schema` 序列化选项。 ----- **2. `DateTimeOffset` 发序列化异常** 以下处理只针对 `Newtonsoft.Json`,数据为 `0001-01-01 00:00:00` 的情形下反序列化为 `DateTimeOffset` 类型报错: ```txt showLineNumbers Could not convert string to DateTimeOffset: 0001-01-01 00:00:00 ``` 相关问题讨论:[https://stackoverflow.com/questions/50628374/json-net-deserializing-datetimeoffset-value-fails-for-datetimeoffset-minvalue-wi/50631270#50631270](https://stackoverflow.com/questions/50628374/json-net-deserializing-datetimeoffset-value-fails-for-datetimeoffset-minvalue-wi/50631270#50631270) - `System.Text.Json` 方式 无需配置 - `Newtonsoft.Json` 方式 ```cs showLineNumbers {3-5} .AddNewtonsoftJson(options => { options.SerializerSettings.MetadataPropertyHandling = MetadataPropertyHandling.Ignore; options.SerializerSettings.DateParseHandling = DateParseHandling.None; options.SerializerSettings.Converters.Add(new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }); }); ```
评论 (
2
)
登录
后才可以发表评论
状态
已完成
待办的
进行中
已完成
已关闭
负责人
未设置
百小僧
monksoul
负责人
协作者
+负责人
+协作者
标签
新功能
优化
未设置
标签管理
里程碑
v4.6.6
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(1)
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册