Отличия конвейера ASP.NET Web API 2.0 и конвейера ASP.NET Core Web API - PullRequest
0 голосов
/ 30 декабря 2018

Я недавно начал переносить свое приложение из стандарта Web.Api .NET в .Net Core.

Прежде всего, все ли этапы конвейера Web Api все еще там?

Когда яскажем, все шаги, которые я имею в виду: конвейер веб-интерфейса API

С точки зрения использования я вижу, что фильтры применяются через

 [ServiceFilter(typeof(NameOfAttribute))]

Но в различныхстатьи, подобные этой: https://andrewlock.net/asp-net-core-in-action-filters/

я могу видеть различные виды фильтров, такие как resource и результаты фильтры.

Также я не вижуиспользование делегирующих обработчиков.

Где мы должны интегрировать функциональность предыдущего конвейера с новыми стандартами?

Спасибо

1 Ответ

0 голосов
/ 30 декабря 2018

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

Как вы заметили, появились новые фильтры.Они позволяют обрабатывать запрос более детально.Вы можете использовать фильтры, как вы делали это раньше, просто декорируя действия и контроллеры:

[SomeFilter]
public IActionResult SomeAction(){...}

И (как раньше в классическом Asp.Net) вы не можете использовать внедрение зависимостей через конструктор фильтров.Применяемые фильтры ведут себя как синглтон.Один экземпляр используется для всех запросов.

ServiceFilterAttribute и TypeFilterAttribute позволяют использовать внедрение зависимостей через конструктор фильтра.При желании применяемые фильтры могут вести себя как одиночные или могут создаваться каждый раз (с внедрением зависимости) для каждого запроса.Вы можете настроить его, используя свойство IsReusable.Подробнее о фильтре здесь .

Больше нет Delegating Handlers.Вместо вас можно создать кастом middleware.Вы можете увидеть пример здесь .

...