Контроллер ASP.NET Core 2.2 Web API, унаследованный от класса Object (не от класса Controller) - PullRequest
0 голосов
/ 26 сентября 2019

Я видел следующее объявление класса контроллера в одном проекте Web API:

[Route("api/[controller]")]
public class UrlController
{
    private readonly IConfiguration configuration;

    public UrlController(IConfiguration configuration)
    {
        this.configuration = configuration;
    }

    [HttpGet]
    [ProducesResponseType(typeof(string), 200)]
    public string Get() => this.configuration.GetSection("ShortUrlPrefix").Get<string>();
}

Я думал, что контроллеры должны наследоваться от Controller / ControllerBase , но в этом случаеэто работает без наследства.Есть ли проблемы с этой конкретной декларацией?Является ли это своего рода «оптимизацией», если нам нужно только вернуть простое значение (в данном случае короткую строку)?

1 Ответ

1 голос
/ 26 сентября 2019

Есть ли какие-либо проблемы с этой конкретной декларацией?

Нет проблем.

Контроллеры обычно наследуются от Controller, хотя это не требуется.

Существуют базовые классы контроллеров, если вам нужны более сложные сценарии, и предоставляет множество свойств и методов, которые полезны для обработки HTTP-запросов.,

Является ли это своего рода «оптимизацией», если нам нужно только вернуть простое значение (в данном случае короткую строку)?

То есть по замыслу.Он следует соглашению, определенному платформой

Ссылка Обработка запросов с контроллерами в ASP.NET Core MVC

Контроллер - это экземплярный класс, в котором навыполняется хотя бы одно из следующих условий:

  • К имени класса добавляется суффикс «Controller»
  • Класс наследуется от класса, к имени которого добавляется суффикс «Controller»
  • Класс украшен атрибутом [Controller]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...