Кто-либо знает о хорошем руководстве для получения Ninject 2, работающего в ASP.NET MVC?

Это действительно зависит. Я приведу 2 примера, где один превосходит другой:

Отметка времени лучше, чем DATETIME, когда вы хотите сохранить сеанс пользователей в базе данных, а время создания сеанса (в формате отметки времени) используется для быстрого поиска строк (с указателем).
Например. Таблица может выглядеть так:
[session_create_time AS Timestamp][IP_address AS 32bit Int][etc...]
Наличие индекса по первым двум столбцам может действительно ускорить ваши запросы. Если у вас есть тип значения DATETIME для поля session_create_time, то это может занять гораздо больше времени. Учтите, что запросы сеанса выполняются каждый раз, когда пользователь запрашивает страницу , поэтому эффективность имеет решающее значение.

DATETIME лучше, чем Timestamp, если вы хотите сохранить дату рождения пользователя или некоторые исторические события, для которых требуется гибкий диапазон времени.

5
задан DaveRandom 25 February 2013 в 17:30
поделиться

4 ответа

Взгляните на это сообщение в блоге. Это должно помочь прояснить процесс, который вам необходимо выполнить для настройки ядра.

http://www.kevinrohrbaugh.com/blog/2009/8/7/using-ninject-2-with-aspnet-mvc. html

2
ответ дан 14 December 2019 в 01:15
поделиться

You still should paste the code you have so people can see where you might have gone wrong.

I think this code should be placed in your Application_Start:

ControllerBuilder.Current.SetControllerFactory(typeof(NinjectControllerFactory));
KernelContainer.Kernel = new StandardKernel(
    new AutoControllerModule(Assembly.GetExecutingAssembly();
);
0
ответ дан 14 December 2019 в 01:15
поделиться

Поскольку вы уже расширяете другой класс, производный от HttpApplication, я думаю просто скопировать соответствующий исходный код из класса NinjectHttpApplication в ваш расширенный класс HttpApplication. Вместо того, чтобы вырезать и вставить его, просто посмотрите исходный код для NinjectHttpApplication в проекте расширения Ninject2 Ninject.Web.Mvc здесь .

Я бы специально скопировал материал из методов Application_Start () и Application_Stop () . Другие методы регистрации контроллеров хороши, но вы можете зарегистрировать свои контроллеры, как хотите. Вы заметите в Application_Start () , ядро создается путем вызова чистой виртуальной функции CreateKernel () - вы можете просто создать встроенное ядро ​​прямо здесь. Кроме того, обратите внимание на наличие свойства Kernel в классе NinjectHttpApplication - я бы также скопировал его в ваш собственный класс. Казалось бы, намерение здесь состоит в том, чтобы производный от HttpApplication класс эффективно служил KernelContainer.

Заявление об ограничении ответственности: я не пробовал это, чтобы увидеть, работает ли это, хотя скоро буду. Я использовал Ninject 1.x в веб-проекте и собираюсь перейти на Ninject 2 в ближайшем будущем; однако я, вероятно, смогу получить непосредственно от NinjectHtppApplication. Удачи!

обратите внимание на наличие свойства Kernel в классе NinjectHttpApplication - я бы скопировал его и в ваш собственный класс. Казалось бы, намерение здесь состоит в том, чтобы производный от HttpApplication класс эффективно служил KernelContainer.

Заявление об ограничении ответственности: я не пробовал это, чтобы увидеть, работает ли это, хотя скоро буду. Я использовал Ninject 1.x в веб-проекте и собираюсь перейти на Ninject 2 в ближайшем будущем; однако я, вероятно, смогу получить непосредственно от NinjectHtppApplication. Удачи!

обратите внимание на наличие свойства Kernel в классе NinjectHttpApplication - я бы скопировал его и в ваш собственный класс. Казалось бы, намерение здесь состоит в том, чтобы производный от HttpApplication класс эффективно служил KernelContainer.

Заявление об ограничении ответственности: я не пробовал это, чтобы увидеть, работает ли это, хотя скоро буду. Я использовал Ninject 1.x в веб-проекте и собираюсь перейти на Ninject 2 в ближайшем будущем; однако я, вероятно, смогу получить непосредственно от NinjectHtppApplication. Удачи!

x в веб-проекте и в ближайшем будущем намерены перейти на Ninject 2; однако я, вероятно, смогу получить непосредственно от NinjectHtppApplication. Удачи!

x в веб-проекте и в ближайшем будущем намерены перейти на Ninject 2; однако я, вероятно, смогу получить непосредственно от NinjectHtppApplication. Удачи!

5
ответ дан 14 December 2019 в 01:15
поделиться

Невозможность наследования от NinjectHttpApplication не имеет большого значения. Не особо много делает, но очень удобно. Предложение Питера Мейера - верный путь. Просто ознакомьтесь с источником здесь . Однако вам придется унаследовать от IHaveKernel.

2
ответ дан 14 December 2019 в 01:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: