Подтвердить что ты не робот

JsonSerializerSettings и Core Asp.Net

Попытка установить параметры JsonOutputFormatter:

var jsonFormatter = (JsonOutputFormatter) options.OutputFormatters.FirstOrDefault(f => f is JsonOutputFormatter);
if (jsonFormatter != null)
{
    jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}

или

mvcBuilder.AddJsonOptions(jsonOptions =>
    {
        jsonOptions.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    });

Но как только я добавлю это, я получаю:

MissingMethodException: Method not found: 'Newtonsoft.Json.JsonSerializerSettings Microsoft.AspNet.Mvc.Formatters.JsonOutputFormatter.get_SerializerSettings()'.

Я использую стандартный Microsoft.AspNet.Mvc.Formatters.Json (6.0.0-rc1-final)

Изменить:. Решил его, установив Newtonsoft.Json 6.0.6 (который понижает все остальные ссылки)

Кто-нибудь получил это? Спасибо..

4b9b3361

Ответ 1

.NET Core 1.0 RTM поставляется с форматированием CamelCase из коробки. Это поведение изменение от RC2. Однако, если вам нужно его изменить, попробуйте этот фрагмент:

services.AddMvc()
        .AddJsonOptions(opt =>
    {
        var resolver  = opt.SerializerSettings.ContractResolver;
        if (resolver != null)
        {
            var res = resolver as DefaultContractResolver;
            res.NamingStrategy = null;  // <<!-- this removes the camelcasing
        }
    });

Подробнее здесь.

Для ядра dotnet 1.0.1:

  services
            .AddMvcCore()
            .AddJsonFormatters(o => o...);

Ответ 2

Я предполагаю, что вы используете ASP.Net Core, и вы должны использовать "Microsoft.AspNetCore.Mvc":

Итак, замените это:

"Microsoft.AspNet.Mvc": "6.0.0-rc1-final"

:

"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final"