Не работает сериализация Asp.net Core Razor Pages с CamelCasePropertyNamesContractResolver в Startup.cs - PullRequest
0 голосов
/ 22 мая 2018

Я использую Asp.net Core Razor Pages и возвращаю json.Мне нужно, чтобы json был в верблюжьем корпусе по всей доске, поэтому я попытался установить распознаватель в Startup.cs , как это

services.AddMvc()
        .AddJsonOptions(options => {
             options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        });

Однако это не работает, страница бритвывсе еще возвращает JSON в корпусе Паскаля.Как мне исправить проблему?Спасибо.

1 Ответ

0 голосов
/ 22 мая 2018

Когда вы используете AddJsonOptions, вы настраиваете экземпляр JsonSerializerSettings, специфичный для ASP.NET Core MVC.Когда вы используете JsonConvert.SerializeObject, вы используете другой экземпляр JsonSerializerSettings.Чтобы повлиять на этот экземпляр, вы можете использовать JsonConvert.DefaultSettings, например так:

JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
    ContractResolver = new CamelCasePropertyNamesContractResolver()
};

К сожалению, изменения, внесенные вами в DefaultSettings, не применяютсяк экземпляру, настроенному с помощью AddJsonOptions - вам нужно будет настроить их отдельно.Вы можете видеть, как это отдельный экземпляр, который создается JsonSerializerSettingsProvider в источнике , если вам интересно.

...