NInject: Где Вы сохраняете свою ссылку на Ядро?

КАК ОТКРЫТЬ UNLOCK для заблокированных таблиц в MySQL:

Ломающиеся блокировки, подобные этому, могут привести к тому, что atomicity в базе данных не будет применяться в операторах sql, вызвавших блокировку.

Это хаки, и правильным решением является исправить ваше приложение, вызвавшее блокировки.

1) Введите MySQL

mysql -u your_user -p

2) Давайте посмотрим список заблокированных таблиц

g5]

mysql> show open tables where in_use>0;

3) Посмотрим список текущих процессов, один из которых заблокирует вашу таблицу (ы)

mysql> show processlist;

4) Убейте один из этих процессов

mysql> kill ;

48
задан Mauricio Scheffer 26 February 2009 в 15:21
поделиться

2 ответа

Это верно, что Вы не хотите раздавать ядро. Как правило, в веб-приложении, я храню ядро в статическом свойстве в HttpApplication. При необходимости в ссылке на ядро можно просто представить зависимость (через аргумент конструктора или свойство), который имеет тип IKernel, и Ninject даст Вам ссылку на ядро, которое активировало тип.

, Если Вы используете WithArguments () на привязке, они будут использоваться для всех активаций. Если Вы будете использовать IParameters, то они будут только использоваться для той активации. (Однако, если сервис, который Вы активируете, будет иметь допускающее повторное использование поведение как Singleton, то он не будет повторно активирован даже при передаче другого IParameters.)

29
ответ дан Nate Kohari 7 November 2019 в 22:44
поделиться

Это - распространенная ошибка, начиная использовать контейнер МОК. См. этот связанный вопрос .

Вкратце:

  • Это - плохая практика для раздавания контейнера (там, сделанный, что, и это действительно причиняет боль)
  • , Если действительно необходимо взывать непосредственно к контейнеру, сначала рассмотреть абстракцию к введенной фабрике, затем поскольку последний ресурс рассматривает использование статического шлюза к контейнеру
16
ответ дан Community 7 November 2019 в 22:44
поделиться
Другие вопросы по тегам:

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