使用转换器初始化 JsonSerializerOptions
Initializing JsonSerializerOptions with Converters
我想从 System.Text.Json 创建 JsonSerializerOptions 的静态实例。这个实例应该有一个自定义的转换器列表。所以,我的倾向:
static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions
{
// Error - Converters cannot be assigned to
Converters = new[] { new DateTimeOffsetConverter() }
};
docs 显示在实例存在后使用 Add
添加转换器,例如:
var serializeOptions = new JsonSerializerOptions();
serializeOptions.Converters.Add(new DateTimeOffsetConverter());
对静态字段执行此操作有什么绝妙的想法吗?
如果您只使用大括号,C# 的初始化语法实际上会调用“Add”:
static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions
{
Converters = { new DateTimeOffsetConverter() }
}
您也可以使用静态初始化程序:
static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions();
static MyClass(){
serializerOptions.Converters.Add(new DateTimeOffsetConverter())
}
我想从 System.Text.Json 创建 JsonSerializerOptions 的静态实例。这个实例应该有一个自定义的转换器列表。所以,我的倾向:
static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions
{
// Error - Converters cannot be assigned to
Converters = new[] { new DateTimeOffsetConverter() }
};
docs 显示在实例存在后使用 Add
添加转换器,例如:
var serializeOptions = new JsonSerializerOptions();
serializeOptions.Converters.Add(new DateTimeOffsetConverter());
对静态字段执行此操作有什么绝妙的想法吗?
如果您只使用大括号,C# 的初始化语法实际上会调用“Add”:
static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions
{
Converters = { new DateTimeOffsetConverter() }
}
您也可以使用静态初始化程序:
static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions();
static MyClass(){
serializerOptions.Converters.Add(new DateTimeOffsetConverter())
}