使用转换器初始化JsonSerializerOptions

问题描述

我想从System.Text.Json创建一个JsonSerializerOptions的静态实例。此实例应具有转换器的自定义列表。所以,我的倾向:

static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions
{
    // Error - Converters cannot be assigned to
    Converters = new[] { new DateTimeOffsetConverter() }
};

一旦实例存在,docs节目将使用Add添加一个Converter,例如:

var serializeOptions = new JsonSerializerOptions();
serializeOptions.Converters.Add(new DateTimeOffsetConverter());

有什么好主意在静态领域做到这一点吗?

解决方法

如果仅使用花括号,C#的初始化程序语法实际上将调用“添加”:

static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions
{
    Converters = { new DateTimeOffsetConverter() }
}

您还可以使用静态初始化程序:

static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions();

static MyClass(){
    serializerOptions.Converters.Add(new DateTimeOffsetConverter())
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...