Правильно вставляйте не обязательные классы из сборки - PullRequest
0 голосов
/ 15 марта 2019

Относительно следующего кода:

kernel.Bind(scan => scan.FromAssemblyContaining<IMediator>()
    .SelectAllClasses()
    .BindDefaultInterface()
    .Configure(o => o.InRequestScope()));

Я делаю этот вызов из класса контейнера в моем веб-проекте.Я ожидаю, что другие проекты, содержащие IMediator в любом месте этого проекта, будут подхвачены этой привязкой, и все классы в этом проекте будут привязаны к интерфейсам по умолчанию.Однако это не так.

Я замечаю, что ни один из классов во внешних проектах не связан.Мне интересно, на самом низком уровне, что делает этот призыв.

  • Какие сборки он просматривает и не должен ли он включать каждый проект в мое решение?
  • В какой степени мне нужно использовать IMediator в других проектах, чтобы его можно было выбратьздесь?
  • Чего не хватает для того, чтобы я получил ожидаемое поведение: он просматривает все мои проекты, видит, что IMediator используется в этом коде, получает все классы в этом проекте, связывает их в соответствии с соглашением по умолчанию.
  • Я совершенно не в курсе и что-то упустил здесь?Есть какие-то пояснения?

Пояснения:

  • Я правильно использую соглашения о связывании по умолчанию
  • Ради этого вопроса меня не интересуют другиенастройка относительно обработчиков.Я специально пытаюсь понять этот точный вызов и почему мои классы не-обработчика, не-запроса не являются обязательными.
...