Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Пример из книги Сандерсона
|
|||
|---|---|---|---|
|
#18+
Всем привет! Читаю книгу Сандерсона про ASP.NET MVC3 (стр.151). В связи с этим попрошу разъяснить мне один пример. Сразу скажу, что все работает, но только не понятно каким образом работает. Не большая часть содержимого файла Global.asax Код: c# 1. 2. 3. 4. 5. 6. 7. 8. Реализация NinjectControllerFactory Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Класс контроллера Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Что из себя представляет IProductRepository Код: c# 1. 2. 3. 4. А теперь вопросы: 1. Откуда метод ninjectKernel.Get знает какой контроллер возвращать, если ранее в него не регистрировалось никаких данных про контроллеры Код: c# 1. 2. 3. 4. 2. Как фабрика контроллеров вызывает конструтор контроллера ProductController и передает ему параметр productRepository , где это прописано? Код: c# 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2012, 09:53 |
|
||
|
Пример из книги Сандерсона
|
|||
|---|---|---|---|
|
#18+
rush.khaz.88 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. Откуда метод ninjectKernel.Get знает какой контроллер возвращать, если ранее в него не регистрировалось никаких данных про контроллеры Вот отсюда, добавлены 3 продукта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2012, 13:00 |
|
||
|
Пример из книги Сандерсона
|
|||
|---|---|---|---|
|
#18+
rush.khaz.88, откуда знает про контроллер - из контекста запроса ( контроллер вообще может лежать в другой сборке) как создает - да обыкновенно - активатором ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2012, 13:15 |
|
||
|
Пример из книги Сандерсона
|
|||
|---|---|---|---|
|
#18+
Starlex, 3 продукта - это список объектов, а не контроллер. mock.Object выдает имитированную реализацию интерфейса IProductRepository. По идеи должна регистрироваться Ninject-связь между IController и самой реализацией класса контроллера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2012, 16:09 |
|
||
|
Пример из книги Сандерсона
|
|||
|---|---|---|---|
|
#18+
Где-то в степи , Хорошо. Вы хотели сказать желаемый контроллер определяется из Код: c# 1. , в таком случае, непонятно для чего применили код: Код: c# 1. . Ведь для возвращения контроллера из функции можно применить методы рефлексии, гораздо проще получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2012, 16:17 |
|
||
|
Пример из книги Сандерсона
|
|||
|---|---|---|---|
|
#18+
rush.khaz.88 Где-то в степи , Хорошо. Вы хотели сказать желаемый контроллер определяется из Код: c# 1. , в таком случае, непонятно для чего применили код: Код: c# 1. . Ведь для возвращения контроллера из функции можно применить методы рефлексии, гораздо проще получится Тип контроллера -> метод определяется из контекста запроса, где в карте роутера вы прописываете какой урл будет обрабатываться каким контроллером из какого намеспейса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2012, 17:13 |
|
||
|
Пример из книги Сандерсона
|
|||
|---|---|---|---|
|
#18+
Вот что накопал. Метод Get Ninject'a: 1. Создает экземпляр класса контроллера способом рефлексии (так как он знает тип контроллера); 2. Вместо полей-интерфейсов (в нашем случае это IProductRepository) вставляет конкретную реализацию (конкретный объект), которую мы уже зарегистрировали (ninjectKernel.Bind<IProductRepository>() .ToConstant(mock.Object)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2012, 08:08 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38008040&tid=1359125]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
89ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 436ms |

| 0 / 0 |
