#c# #.net-core #system.text.json
#c# #.net-ядро #system.text.json
Вопрос:
Я хотел бы создать статический экземпляр JsonSerializerOptions из System.Text.Json. У этого экземпляра должен быть пользовательский список конвертеров. Итак, моя склонность:
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());
Есть какие-нибудь элегантные идеи, чтобы сделать это для статического поля?
Ответ №1:
Синтаксис инициализатора C # фактически вызовет «Add», если вы просто используете фигурные скобки:
static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions
{
Converters = { new DateTimeOffsetConverter() }
}
Вы также могли бы использовать статический инициализатор:
static readonly JsonSerializerOptions serializerOptions = new JsonSerializerOptions();
static MyClass(){
serializerOptions.Converters.Add(new DateTimeOffsetConverter())
}
Комментарии:
1. Черт возьми! Я надеялся, что это существует. Спасибо, работает как шарм.