ASP.NET Core 3.0 настраивает контроллеры для возврата паскалей - PullRequest
1 голос
/ 30 ноября 2019

В ASP.NET Core 3, кажется, есть только одна опция, когда вы добавляете опции json:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers()
            .AddJsonOptions(options =>
                options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase);
}

Мне интересно, не хватает ли опции для возврата моих объектов в PascalCaseа не CamelCase. Я не знаю почему, но я чувствую, что это должно быть включено в базовые библиотеки

Быстрое редактирование: Подобный вопрос о сериализации , я бы сказал, что этот вопрос отличается, потому что мой вопрос былвокруг объекта, возвращаемого из API, где в качестве упомянутого вопроса речь идет о сериализации объекта вне основного конвейера ASP .NET.

1 Ответ

1 голос
/ 30 ноября 2019

Два решения, которые я нашел здесь, одно вы можете определить самостоятельно JsonNamingPolicy:

public class JsonPascalCaseNamingPolicy : JsonNamingPolicy
    {
        public override string ConvertName(string name)
        {
            return name;
        }
    }

Или вы можете включить пакет Microsoft.AspNetCore.Mvc.NewtonsoftJson и добавить средство разрешения контракта по умолчанию:

public void ConfigureServices(IServiceCollection services)
        {

            services.AddControllers()
                .AddNewtonsoftJson(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...