-
新特性
- [新增]
HTTP远程请求Action<HttpRequestBuilder>操作符,支持将HttpRequestBuilder隐式转换为Action<HttpRequestBuilder>4.9.9.52 ⏱️2026.08.01 2c3d42d - [新增]
HTTP远程请求HttpRequestBuilder.Setup和HttpBuilder.Setup静态属性 4.9.9.52 ⏱️2026.08.01 2c3d42d - [新增]
HTTP远程请求ETag缓存功能 4.9.9.48 ⏱️2026.07.31 53c6eb8 - [新增]
HTTP远程请求配额策略功能 4.9.9.46 ⏱️2026.07.29 22c8edb - [新增]
HTTP远程请求支持zstd解压(.NET11) 4.9.9.46 ⏱️2026.07.29 22c8edb - [新增]
HTTP远程请求ContentEquals、ContentMatches、ContentNotEmpty和HeaderNotExists断言方法 4.9.9.46 ⏱️2026.07.29 95f0380 - [新增] 流变对象
ClayOptions.Lenient静态属性 4.9.9.46 ⏱️2026.07.29 48944dd - [新增] 流变对象支持
+运算符扩展自身 4.9.9.46 ⏱️2026.07.29 48944dd - [新增]
HTTP远程请求SSE和长轮询支持返回IAsyncEnumerable<T>4.9.9.43 ⏱️2026.07.26 5fd05a1 - [新增]
HTTP远程请求Furion框架自动刷新Token功能 4.9.9.39 ⏱️2026.07.21 6611c06 - [新增]
HTTP远程请求JWT解析工具类JwtTokenUtility4.9.9.39 ⏱️2026.07.21 6611c06 - [新增]
HTTP远程请求支持为特定HttpClient配置IHttpRequestEventHandler4.9.9.39 ⏱️2026.07.21 6611c06 - [新增]
HTTP远程请求支持配置查询参数、请求标头及Cookie的格式化字符串 4.9.9.38 ⏱️2026.07.21 b783f3e - [新增]
HTTP远程请求重试策略默认记录日志 4.9.9.38 ⏱️2026.07.21 b783f3e - [新增]
HTTP远程请求在启用异常抑制时,若发生异常则自动输出警告日志 4.9.9.38 ⏱️2026.07.21 b783f3e - [新增]
HTTP远程请求无依赖声明式代理支持 4.9.9.37 ⏱️2026.07.20 f732128 - [新增]
HTTP远程声明式请求支持ValueTask返回值类型 4.9.9.36 ⏱️2026.07.19 a221418 - [新增]
HTTP远程请求URL地址支持{key?}和{**key}路径参数 4.9.9.36 ⏱️2026.07.19 a221418 - [新增]
DispatchProxyAsync代理类ValueTask返回值类型相关方法 4.9.9.36 ⏱️2026.07.19 a221418 - [新增]
HTTP远程请求HttpRemoteResult<T>内容转换器 4.9.9.34 ⏱️2026.07.18 3ae3f64 - [新增]
HTTP远程请求支持RFC 3986标准的请求地址拼接 4.9.9.34 ⏱️2026.07.18 3ae3f64 - [新增] 定时任务支持手动执行时传递自定义数据 4.9.9.31 ⏱️2026.07.16 09f0ace
- [新增]
JWT授权支持配置获取Token的请求头键的可选值 4.9.9.30 ⏱️2026.07.16 3cac646 - [新增]
HTTP远程请求Access Token自动管理功能 4.9.9.25 d618a54 - [新增]
HTTP远程请求重试功能 4.9.9.25 d618a54 - [新增]
HTTP远程请求支持自定义发送请求的管道处理器 4.9.9.25 d618a54 - [新增]
HTTP远程请求[Body]特性支持配置DisposeResourcesOnRequestCompletion4.9.9.17 22d2c46 - [新增]
HTTP远程请求支持多实例服务注册 4.9.9.16 1284ea8 - [新增]
HTTP远程请求内容处理器支持返回多个HttpContent组合 4.9.9.16 1284ea8 - [新增]
HTTP远程请求构建器RemoveContent方法 4.9.9.16 1284ea8 - [新增]
HTTP远程请求支持批量添加请求结束时需要释放的对象方法:AddDisposables4.9.9.16 1284ea8 - [新增]
HTTP远程请求获取本地IP地址和MAC地址方法:HttpRemoteUtility.GetLocalIPv4(),HttpRemoteUtility.GetLocalMacAddress()4.9.9.16 1284ea8 - [新增]
Cron表达式H字符支持:H与R功能完全等价,所有R的语法均适用于H4.9.9.14 45fe276 - [新增]
Cron表达式支持Jenkins的R#N/H#N语法:用于DayOfWeek字段,表示每月第N个随机星期几,解析时随机选定星期几 4.9.9.14 45fe276 - [新增]
Cron表达式Macro宏:@weekends4.9.9.14 45fe276 - [新增] 定时任务周末触发器特性和方法:
Weekends4.9.9.14 45fe276 - [新增]
HTTP远程请求可通过.SetBaseAddress(url)或[BaseAddress(url]充当公共前缀功能 4.9.9.13 ⏱️2026.07.05 0224fa0 - [新增]
HTTP远程请求支持添加泛型响应内容转换器 4.9.9.10 ⏱️2026.07.03 9a37cfa - [新增]
HTTP远程请求JSON响应反序列化包装器ResultHandler功能 4.9.9.10 ⏱️2026.07.03 9a37cfa - [新增]
HTTP远程请求支持发送IBrowserFile文件 4.9.9.9 ⏱️2026.07.02 fa73c28 - [新增]
HTTP声明式请求支持通过[Header("键: 值")]方式设置标头 4.9.9.9 ⏱️2026.07.02 fa73c28 - [新增]
HTTP远程请求SetContent方法支持配置disposeResourcesOnRequestCompletion参数 4.9.9.9 ⏱️2026.07.02 fa73c28 - [新增]
HTTP远程请求IFormFile内容处理器支持 4.9.9.9 ⏱️2026.07.02 8a8e44b - [新增] 视图引擎
CompileFromCached方法 4.9.9.5 ⏱️2026.06.29 c1b3c35 - [新增]
HTTP远程请求IAsyncEnumerable<T>响应内容类型支持 4.9.9.3 ⏱️2026.06.25 4b80b9b - [新增]
Cron表达式支持Rvalue1,value2,value3离散值随机语法 4.9.9.2 ⏱️2026.06.24 99b6e94 - [新增]
Cron表达式支持获取指定数量的下/上所有发生时间 4.9.9.1 ⏱️2026.06.24 99b6e94
- [新增]
-
突破性变化
- [调整]
HTTP远程请求WithRequest方法名为With4.9.9.52 ⏱️2026.08.01 2c3d42d - [调整]
HTTP远程请求URL参数格式化程序IUrlParameterFormatter接口方法 4.9.9.40 ⏱️2026.07.23 c380d55 - [调整]
HTTP远程请求URL参数排序委托签名 4.9.9.40 ⏱️2026.07.23 c380d55 - [调整]
HTTP远程请求内容转换器方法参数设计 4.9.9.34 ⏱️2026.07.18 3ae3f64 - [调整]
Cron表达式R随机语法:区间改为R(min-max),带步长改为R(min-max)/step,离散值改为R(value1,value2,...),R/step保持不变 4.9.9.14 45fe276 - [调整]
Cron表达式Macro宏:@workday->@weekdays4.9.9.14 45fe276 - [调整] 定时任务工作日触发器的特性和方法名:
Workday->Weekdays4.9.9.14 45fe276 84f468a - [调整] 重命名代理拦截器
AspectDispatchProxy->DispatchProxyAsync4.9.9.12 ⏱️2026.07.05 f09a934 - [移除]
Furion.Pure和Furion.Pure.Xunit扩展包 4.9.9.11 ⏱️2026.07.04 e026b02
- [调整]
Furion 公告:v4.9.9 起移除 Furion.Pure,统一为单一包,全面拥抱 EFCore
Furion 从一开始就默认集成了 .NET 官方的 Entity Framework Core(简称 EFCore)。但由于早期 EFCore 概念繁杂、上手门槛较高,不少开发者更倾向使用第三方 ORM,因此我们将 Furion 拆分为 Furion 和 Furion.Pure 两个包:前者包含 EFCore,后者不包含。
2021 年拆包后,Furion 包的流量和 NuGet 下载量急剧下降,而 Furion.Pure 的下载量却迅速攀升。原本统一的下载量被迫分散到两个包,导致新用户在搜索 “Furion” 时,看到的 Furion 包下载量少得可怜——大部分下载实际上被 Furion.Pure 带走。从长远发展来看,这非常不利:第一,Furion 包每个版本的下载量严重缩水;第二,同时维护两个包及其依赖需要投入巨大的时间和精力。
因此,从 Furion v4.9.9 开始,我们将移除 Furion.Pure 包及相关扩展,并在后续开发中逐步把 EFCore 模块功能抽离为独立模块。以后只保留 Furion 一个包,不再提供 Furion.Pure。
✅ 升级指引
从 Furion.Pure 升级到 v4.9.9 只需完成以下两处调整:
- 替换 NuGet 包
将项目中的Furion.Pure包替换为Furion。- (如果使用了定时任务持久化)修改数据库记录
将作业触发器表中AssemblyName字段的值由Furion.Pure更新为Furion,完成后重启应用程序。除此之外无需任何其他变更。唯一可感知的影响是发布目录下会多出一个 EFCore 相关的 dll 文件。
另外,在 AI 时代,.NET 生态中大部分第三方 ORM 的发布频率和代码提交频率明显降低,维护活跃度大不如前,而 EFCore 的下载量和用户数正呈指数级增长。AI 也大大降低了 EFCore 的使用门槛,所以 我们推荐新项目优先选择 EFCore,而非第三方 ORM。
接下来,我们还会 重构 EFCore 扩展模块,并移除所有非 EFCore 的第三方 ORM 扩展及相关的脚手架和文档。
-
- [新增]
HTTP远程请求QUERY请求支持 4.9.9.8 ⏱️2026.07.01 1195ffa
- [新增]
-
- [调整]
HTTP远程请求[Query]重命名为[QueryParam]4.9.9.8 ⏱️2026.07.01 b9df71b
- [调整]
昨天,IETF(互联网工程任务组)正式发布了 RFC 10008,为 HTTP 协议族增添了一个新成员——QUERY 方法。这是一种与 GET 同样安全、幂等,但支持携带请求内容的 HTTP 动词。
https://www.rfc-editor.org/info/rfc10008
框架已第一时间提供适配支持。
值得注意的是,原有的 [Query] 特性已重命名为 [QueryParam],现在的 [Query] 则用作 HTTP 方法(请求谓词)。
-
- [升级] 重构视图引擎底层代码,改进性能、内存占用及未来扩展性 4.9.9.7 ⏱️2026.06.30 b1d69b2
-
- [移除] 视图引擎字符串扩展方法 4.9.9.5 ⏱️2026.06.29 8f37d03
-
- [调整] 事件总线上下文以及
CancellationToken参数设计 4.9.9 ⏱️2026.06.23 c0d2c4d
- [调整] 事件总线上下文以及
-
问题修复
- [修复]
HTTP远程请求转发表单时内容类型的Boundary解析错误问题 4.9.9.50 ⏱️2026.07.31 8a93868 - [修复]
HTTP远程请求Digest摘要认证错误处理格式和算法问题 4.9.9.47 ⏱️2026.07.30 312767f - [修复]
HTTP远程请求分析日志打印未知大小且超过5MB的响应内容时出现流已释放的异常 4.9.9.46 ⏱️2026.07.29 22c8edb - [修复]
HTTP远程请求WebSocket客户端接收大消息时数据出现截断问题 4.9.9.46 ⏱️2026.07.29 fc1634d - [修复]
HTTP远程请求分析日志打印SSE或流式响应内容出现死锁问题 4.9.9.43 ⏱️2026.07.26 5fd05a1 09cb4f1 - [修复]
HTTP远程请求SSE和长轮询错误处理数据问题 4.9.9.43 ⏱️2026.07.26 5fd05a1 - [修复]
HTTP远程请求WebSocket客户端销毁后没有释放事件资源 4.9.9.34 3ae3f64 - [修复] 定时任务看板登录页面密码输入框是明文问题 4.9.9.33 bf36808
- [修复]
HTTP远程请求转发存在SSRF攻击安全问题 4.9.9.30 020aee7 b30721d - [修复]
Serve.Run()在File-Based Apps单文件应用中出现异常 4.9.9.21 4b67d6b - [修复]
HTTP远程文件上传/下载时,控制台进度打印可能抛出异常的问题 4.9.9.20 acfd9dd - [修复] 规范化文档自定义标签
Tag之后注释丢失问题 4.9.9.19 e9c8ada - [修复]
HTTP远程请求在极端情况下出现连接池耗尽问题 4.9.9.18 9b7b430 - [修复]
Cron表达式RandomParser.ToString()对R/step的简洁输出,避免全范围步长被错误展开 4.9.9.14 45fe276 - [修复]
HTTP远程请求在Blazor WebAssembly应用中使用出现解压异常问题 4.9.9.13 ⏱️2026.07.05 0224fa0 - [修复]
HTTP远程请求分析日志在一些特殊场景下出现空行打印问题 4.9.9.13 ⏱️2026.07.05 0224fa0 - [修复]
HTTP远程请求声明式接口不支持封闭泛型接口定义问题 4.9.9.12 ⏱️2026.07.05 aa47822 - [修复] 规范化文档页面注销登录后没有清除
token问题 4.9.9.11 ⏱️2026.07.04 a64a769 - [修复]
HTTP远程请求存在未释放HttpResponseMessage问题 4.9.9.10 ⏱️2026.07.03 9a37cfa - [修复] 视图引擎存在内存一直无法释放问题 4.9.9.5 ⏱️2026.06.29 48f778f
- [修复] 数据验证
AbstractValueValidator<>遗漏abstract关键字导致程序集扫描异常 4.9.9.4 ⏱️2026.06.26 77f2533 - [修复]
Cron表达式R字符解析出现矛盾问题 4.9.9.1 ⏱️2026.06.24 99b6e94 - [修复]
Cron表达式解析R字符并获取下一次执行时间错误问题 4.9.9 ⏱️2026.06.23 8ba4d3c
- [修复]
-
其他更改
- [改进]
HTTP远程请求JSON序列化功能 4.9.9.51 ⏱️2026.08.01 85f6dea #IK5MUW - [改进]
App.User静态属性,支持在跨线程/异步上下文中使用 4.9.9.48 ⏱️2026.07.31 7461a94 #IK5CRK - [改进]
HTTP远程请求发送原始字符串内容 4.9.9.46 ⏱️2026.07.29 22c8edb - [改进]
HTTP远程请求异常捕获设计 4.9.9.42 ⏱️2026.07.25 d83cc7f - [改进]
HTTP远程请求路径参数模板语法 4.9.9.41 ⏱️2026.07.24 40b7d08 - [改进]
HTTP远程请求声明式数据验证功能 4.9.9.35 ⏱️2026.07.19 3e91e0c - [改进]
HTTP远程请求底层发送请求核心逻辑 4.9.9.34 ⏱️2026.07.18 3ae3f64 - [改进]
HTTP远程请求默认Content-Type推断逻辑 4.9.9.15 ⏱️2026.07.06 5495a09 - [改进] 视图引擎编译模板出错时可以直观显示错误的模板上下文代码 4.9.9.8 ⏱️2026.07.01 f5e6771
- [调整] 友好异常处理,将内部异常和外部异常一起呈现 4.9.9.7 ⏱️2026.06.30 cf42cf4
- [改进] 视图引擎编译性能,减少约
40MB大小内存,支持GC回收 4.9.9.6 ⏱️2026.06.30 a17a14a - [改进]
App.CompileCSharpClassCodeToStream编译C#代码,支持GC回收 4.9.9.6 ⏱️2026.06.30 cae4287 - [改进]
[FlexibleArray<T>]查询参数模型绑定 4.9.9.3 ⏱️2026.06.25 a7aae88 @YaChengMu !937 - [改进] 两个流变对象之间比较性能 4.9.9 ⏱️2026.06.23 b08b9d5
- [改进]
-
文档
- [新增]
Linux部署文档 - [更新]
HTTP远程请求文档、流变对象文档、事件总线文档、Cron表达式文档、视图引擎文档、任务队列文档、规范化文档、数据验证文档
- [新增]