внедрение нескольких сервисов в один контроллер .NetCore, что лучше всего - PullRequest
1 голос
/ 09 мая 2020

я не уверен, что я делаю, это лучшая практика, или, если это не то, что мне следует делать, в. net core вы регистрируете свои службы, а затем вставляете их в контроллер, который вы хотите прямо сейчас, если мне нужно ввести 3 services в моем контроллере или, скажем, n служб, я должен передать n параметров в свой конструктор, но не слишком ли это?

вот мой контроллер:

 public class AcessInfoController : ControllerBase
{
    // private DbContextClass db;
    private IAccessInfo _acess;
  public  AcessInfoController(IAccessInfo access)
    {
        _acess = access;

       // db = context;

    }

теперь мне нужно ввести еще один интерфейс IAnotherInterface, как лучше всего сделать его более читабельным?

1 Ответ

2 голосов
/ 09 мая 2020

Я думаю, что это не имеет ничего общего с передовой практикой ...

Если у вас есть несколько служб, выполняющих разные вещи, и они вам нужны в контроллере, способ их внедрения выглядит следующим образом:

public class AcessInfoController : ControllerBase
{
    private IAccessInfo _access;
    private IAnotherInterface  _another;
    private IAndAnotherInterface  _andAnother;

    public AcessInfoController(IAccessInfo access, IAnotherInterface another, IAndAnotherInterface andAnother)
    {
        _access = access;
        _another = another;
        _andAnother = andAnother;
    }

Конечно, ваша строка ctor может быть немного длиннее, но это не проблема.

Какая была бы альтернатива? Вы можете заключить свои три интерфейса в четвертый. Но почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...