小编zig*_*zag的帖子

.NET Decimal类型计算是否具有确定性?

关于.NET的十进制数据类型确定性我有两个问题:

  1. 有decimal型的计算跨平台的确定性?或者换句话说,decimal类型上的数学运算是否会在所有平台上产生完全相同的结果?

  2. 是铸造decimal号码float或double跨平台的确定性(强制转换总是会正好产生相同的结果)?

.net c# floating-point decimal type-conversion

8
推荐指数
1
解决办法
389
查看次数

将 System.Text.Json 源生成器与自定义 JsonConverter 结合使用

自定义类如何JsonConverter<>与System.Text.Json源生成器一起使用?

我想调用JsonSerializer.Deserialize<MyType[]>()它不会回退到基于反射的实现并使用自定义的MyTypeJsonParser : JsonConverter<MyType>.

编辑澄清:自定义转换器是为 实现的MyType,但 json 包含对象数组MyType。因此,我想创建反JsonSerializerContext序列化对象()array的生成源,使用生成的代码来反序列化一个部分,并使用手动转换器来反序列化一个对象部分。MyTypeMyType[]arrayMyType

旧代码(不使用源生成器)通过将自定义转换器添加到JsonSerializerOptions.Converters.

然而,经过进一步研究,我发现Converters中缺少属性JsonSourceGenerationOptionsAttribute。文档中的表格还说明了JsonConverterAttribute和在序列化优化模式JsonSerializerOptions.Converters下不受支持。因此,目前看来(.NET 6)不可能将自定义转换器与 json 源生成器混合。

文档并不清楚,是否至少可以使用元数据收集JsonConverterAttribute源生成模式。

.net c# system.text.json sourcegenerators .net-6.0

7
推荐指数
1
解决办法
3477
查看次数