Как улучшить этот вопрос, как найти все существующие коды состояния для действия ActionModel в ApplicationModelProvider, прежде чем добавлять их?
В настоящее время просматривает action.Filters[0].StatusCode
в отладчике, однако не может получить доступ к свойству в реальном коде , Перед тем, как добавить его, нужно посмотреть, какие коды состояния уже существуют для действий контроллера API во всех списках array .
сделал фильтры [0] в качестве теста
Net Базовый API: сделать глобальный параметр ProducesResponseType или автоматизировать
foreach (ControllerModel controller in context.Result.Controllers)
{
foreach (ActionModel action in controller.Actions)
{
Type returnType = action.ActionMethod.ReturnType.GenericTypeArguments[0].GetGenericArguments()[0];
action.Filters.Add(new ProducesResponseTypeAttribute(StatusCodes.Status510NotExtended));
action.Filters.Add(new ProducesResponseTypeAttribute(returnType, StatusCodes.Status200OK));
action.Filters.Add(new ProducesResponseTypeAttribute(returnType, StatusCodes.Status500InternalServerError));
}
}
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
...
services.TryAddEnumerable(ServiceDescriptor.Transient<IApplicationModelProvider, ProduceResponseTypeModelProvider>());
...
}