Мне нужно провести рефакторинг кода 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 или ссылки на сборку?)