Невозможно добавить атрибут [FromHeader] для модели/класса в минимальном API ASP.NET Core 6.0

Я пытаюсь добавить несколько пользовательских заголовков в минимальный API ядра .NET, поэтому я добавил атрибут перед входными параметрами.

Он работает нормально, я вижу эти заголовки в чванстве.

Но я ищу лучший способ сохранить все эти заголовки в классе/модели и пытаюсь добавить это в заголовок API, используя атрибут перед этой моделью.

Таким образом, я получаю эту ошибку

Не найден общедоступный статический метод bool для заголовков Метод Testheader.tryparse(string,out TestHeaders) найден для

Это код:

      app.MapPost("api/v1/testapi",async([FromHeader] TestHeaderModel headers,{
    return Results.Ok(null)
})
.WithTags(new string[]{"test"})
.Produces<response>(200);

Модель

      public class TestHeaderModel
{
    [FromHeader]
    public string header1 {get;set;}
    [FromHeader]
    public string header2{get;set;}
}

Мой вопрос : есть ли способ сохранить все эти заголовки в одном классе/модели и добавить [FromHeader] атрибут для этого конкретного класса в контроллере?

Этот подход работает в предыдущих версиях ядра .net, но не в 6.0. Есть ли для этого какая-то конкретная причина? или я что-то пропустил здесь?

1 ответ

Взгляните на этот репозиторий DamianEdwards/MinimalApiPlayground

Более конкретно это MapGetв этой строке:https://github.com/DamianEdwards/MinimalApiPlayground/blob/main/src/MinimalApiPlayground/Program.cs#L244

Обратите внимание, как они привязывают объект к методу GET. В этом примере для запроса параметров, но также может быть и для заголовков.

Этот проект использует этот пакет (сейчас в предварительной версии)MinimalApis.Extensions

https://github.com/DamianEdwards/MinimalApis.Extensions

Другие вопросы по тегам