问题描述
我想从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())
}