Относительно следующего кода:
kernel.Bind(scan => scan.FromAssemblyContaining<IMediator>()
.SelectAllClasses()
.BindDefaultInterface()
.Configure(o => o.InRequestScope()));
Я делаю этот вызов из класса контейнера в моем веб-проекте.Я ожидаю, что другие проекты, содержащие IMediator в любом месте этого проекта, будут подхвачены этой привязкой, и все классы в этом проекте будут привязаны к интерфейсам по умолчанию.Однако это не так.
Я замечаю, что ни один из классов во внешних проектах не связан.Мне интересно, на самом низком уровне, что делает этот призыв.
- Какие сборки он просматривает и не должен ли он включать каждый проект в мое решение?
- В какой степени мне нужно использовать IMediator в других проектах, чтобы его можно было выбратьздесь?
- Чего не хватает для того, чтобы я получил ожидаемое поведение: он просматривает все мои проекты, видит, что IMediator используется в этом коде, получает все классы в этом проекте, связывает их в соответствии с соглашением по умолчанию.
- Я совершенно не в курсе и что-то упустил здесь?Есть какие-то пояснения?
Пояснения:
- Я правильно использую соглашения о связывании по умолчанию
- Ради этого вопроса меня не интересуют другиенастройка относительно обработчиков.Я специально пытаюсь понять этот точный вызов и почему мои классы не-обработчика, не-запроса не являются обязательными.