c# - 使用转换器初始化 JsonSerializerOptions
问题描述
我想从 System.Text.Json创建JsonSerializerOptions的静态实例。这个实例应该有一个自定义的转换器列表。所以,我的倾向:
static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions
{
// Error - Converters cannot be assigned to
Converters = new[] { new DateTimeOffsetConverter() }
};
一旦实例存在,文档显示使用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())
}
推荐阅读
- apache-kafka - Kafka:错误关闭代理,因为 E:\kafka\data\kafka 中的所有日志目录都失败了 (kafka.log.LogManager)
- css - 如何通过断点扩展 Bootstrap 4 类
- javascript - 我在使用 Javascript 的 Whatsapp 共享中遇到问题
- nao-robot - NAOqi 版本中缺少 getDirectRawImageRemote()。2.8.6.23
- git - 重置 gitk GUI
- dart - Dart 中的运行时类型检查 - 检查列表
- android - 如何在 bintray(jcenter) 上为我的库获取命名空间路径?
- java - JButton 没有响应鼠标点击
- excel - VBA.UCase 正在工作,而 UCase 在 Excel VBA (Office 2013) 中不工作
- javascript - 当每个项目都不同时验证数组