Как заменить Consumes and Productions в Swashbuckle 5.0.0, используя ASP. NET Core 3.1? - PullRequest
0 голосов
/ 11 февраля 2020

Мне нужно провести рефакторинг кода C#, используя Swashbuckle 4.0.1 и ASP. NET Core 2.0. Я должен использовать Swashbuckle 5.0.0 и ASP. NET Core 3.1, однако я не могу решить ошибку, которую я получаю от Consumes и Produces. Вот фрагмент кода, который мне нужен для рефакторинга:

public void Apply(OpenApiOperation operation, OperationFilterContext context) {
   var produces = context.ApiDescription.TryGetMethodInfo(out var mInfo) ? mInfo.DeclaringType.GetCustomAttributes(true).OfType<ProducesAttribute>().FirstOrDefault() : null;

   if (produces != null) {
      operation.Consumes.Clear();                           /* ERROR */
      operation.Consumes = produces.ContentTypes.ToList();  /* ERROR */
      operation.Produces.Clear();                           /* ERROR */
      operation.Produces = produces.ContentTypes.ToList();  /* ERROR */
   }

   foreach (var parameter in operation.Parameters) {
      var description = context.ApiDescription.ParameterDescriptions.First(p => p.Name == parameter.Name);
      if (string.IsNullOrEmpty(parameter.Name))
         parameter.Name = description.ModelMetadata?.Name;
      if (parameter.Description == null && description.RouteInfo != null)
         parameter.Description = description.ModelMetadata?.Description;
      if (description.RouteInfo != null)
         parameter.Required |= !description.RouteInfo.IsOptional;
   }
}

Я не могу понять, как избавиться от этих ошибок. Ошибки, которые я получаю из Visual Studio:

Ошибка CS1061 OpenApiOperation не содержит определения для Consumes (то же самое происходит с Produces) и не удалось найти доступный метод расширения Consumes, принимающий первый аргумент типа OpenApiOperation (вам не хватает директивы using или ссылки на сборку?)

1 Ответ

0 голосов
/ 11 февраля 2020

Вы должны будете украсить свои контроллеры атрибутами Produces / Consumes. Смотрите этот выпуск GitHub: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/1296

...