|
|
|
Почему ninject не резолвит зависимости?
|
|||
|---|---|---|---|
|
#18+
Классическое приминение нинджекта. Конструкторы контроллеров принимают параметром некий интерфейс. 1. Зареференсил сборку Ninject 2. Сконфигурировал ядро(прописал биндинги). все равно получаю ошибку, что контроллеры не имеют конструктора без параметров. В чем может быть проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 12:44:41 |
|
||
|
Почему ninject не резолвит зависимости?
|
|||
|---|---|---|---|
|
#18+
ведь по идее все должно быть в таком порядке 1. Lets say we are looking for "/Task/Index". 2. Ninject MVC applications use now DefaultControllerFactory, the same as non-Ninject applications. 3. DefaultControllerFactory finds type for controller (TaskController). 4. DefaultControllerFactory has internal class called DefaultControllerActivator. DefaultControllerActivator has method called Create, which returns controller instance. DefaultControllerFactory asks DefaultControllerActivator for TaskController type instance. 5. DefaultControllerActivator.Create uses IDependencyResolver. This is where Ninject comes in. Since Ninject implements its own resolver and sets it at the start of application, he gets request for TaskController instance. 6. The rest is easy. Ninject finds constructor for this type, injects parameters, returns controller instance но у меня почему то 5 пункт не выполняется выходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 12:48:55 |
|
||
|
Почему ninject не резолвит зависимости?
|
|||
|---|---|---|---|
|
#18+
ниу кого нет никаких мыслей по этому поводу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:05:21 |
|
||
|
Почему ninject не резолвит зависимости?
|
|||
|---|---|---|---|
|
#18+
Esofter, сорри, но к мвс да еще и нинджям я никоим образом не отношусь :| ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:08:48 |
|
||
|
Почему ninject не резолвит зависимости?
|
|||
|---|---|---|---|
|
#18+
ZoriaEsofter, сорри, но к мвс да еще и нинджям я никоим образом не отношусь :| дело в том что я использовал Castle.Windsor раньше. Так там надо было переопределять фабрику создания контроллеров. А вот нинджект обещает сам разрешать эти зависимости, но почему-то у меня не выходит :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 14:15:18 |
|
||
|
Почему ninject не резолвит зависимости?
|
|||
|---|---|---|---|
|
#18+
вобщем, как всегда бывает, проблема была в невнимательности реализация интерфейса у меня принимала параметр в конструтор Код: plaintext 1. SomeServiceImpl - принимал параметр. Но это нинджект "проглотил" и проблема вылезла только, когда создавался контроллер, которому и потребовался этот SomeServiceImpl. Такие вот дела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 12:55:55 |
|
||
|
Почему ninject не резолвит зависимости?
|
|||
|---|---|---|---|
|
#18+
EsofterКлассическое приминение нинджекта. Конструкторы контроллеров принимают параметром некий интерфейс. 1. Зареференсил сборку Ninject 2. Сконфигурировал ядро(прописал биндинги). все равно получаю ошибку, что контроллеры не имеют конструктора без параметров. В чем может быть проблема? Я очень извиняюсь за своё невежество - пока только изучаю MVC и пишу учебные примерчики, но для чего нужны эти фабрики контроллеров? Что даёт их использование: увеличение быстродействия сайта, простоту программирования, "надувание щёк" перед заказчиком или ещё что-нибудь? Можно ли пояснить их необходимость в трёх словах? В моих скромных потугах я пока вроде бы успешно обходился и без этого. С уважением ВВГ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 15:03:53 |
|
||
|
Почему ninject не резолвит зависимости?
|
|||
|---|---|---|---|
|
#18+
ValGer, неплохая статья тут. там есть и продолжение про фабрику контроллеров. http://habrahabr.ru/blogs/net/63138/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 15:08:52 |
|
||
|
Почему ninject не резолвит зависимости?
|
|||
|---|---|---|---|
|
#18+
ValGerEsofterКлассическое приминение нинджекта. Конструкторы контроллеров принимают параметром некий интерфейс. 1. Зареференсил сборку Ninject 2. Сконфигурировал ядро(прописал биндинги). все равно получаю ошибку, что контроллеры не имеют конструктора без параметров. В чем может быть проблема? Я очень извиняюсь за своё невежество - пока только изучаю MVC и пишу учебные примерчики, но для чего нужны эти фабрики контроллеров? Что даёт их использование: увеличение быстродействия сайта, простоту программирования, "надувание щёк" перед заказчиком или ещё что-нибудь? Можно ли пояснить их необходимость в трёх словах? В моих скромных потугах я пока вроде бы успешно обходился и без этого. С уважением ВВГ вот есть у тебя интерфейс, который предоставляет доступ к хранилищу данных. Назовем его IDataStorageService. этот сервис использует в себе один или несколько контроллеров. То есть имеется зависимость контроллеров от реализации этого сервиса. Разрешением этих зависимостей занимаются DI-фреймворки. Ты скажешь: а зачем мне выделять интерфейс от реализации? Ведь я точно знаю что у меня будет только одна реализация, которая предполагает хранение данных допустим в скл БД. Ответ получишь, когда попытаешься написать юнит-тесты для контроллеров. Если у тебя класс-поставщик вынесен в интерфейс - ты его легко и просто можешь "замокать", то есть подменить реализацию на любую удобную тебе в данном конкретном тесте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 15:10:57 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=154&tid=1360588]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 285ms |

| 0 / 0 |
