SolrNet - ServiceLocator.Current выдает исключение нулевой ссылки

Я настраиваю подключение к Solr в методе Application_Start в global.asax через: Startup.Init<ApartmentDoc>("http://localhost:8080/solr");

У меня есть проект библиотеки DAO, который я пытаюсь использовать для вызовов на сервер Solr. Проблема в том, что когда я пытаюсь получить доступ к экземпляру моего соединения solr из библиотечного класса, я получаю нулевое исключение ссылки на ServiceLocator.Current.

var solr = ServiceLocator.Current.GetInstance<ISolrOperations<ApartmentDoc>>();

Я новичок в DI и SolrNet, поэтому буду признателен за любую помощь.

Спасибо, Дрю.


person dhysong    schedule 06.03.2012    source источник
comment
Либо код, в который вы поместили Startup.Init, не работает, либо что-то в Application_Start срабатывает, либо вы запускаете код библиотеки в каком-то другом контексте (например, модульный тест).   -  person Mauricio Scheffer    schedule 06.03.2012
comment
Кстати, всегда лучше передавать экземпляр ISolrOperations<T> явно, а не полагаться на ServiceLocator.   -  person Mauricio Scheffer    schedule 06.03.2012
comment
Это приложение MVC без тестов, поэтому я не думаю, что запускаю код вне контекста. Я также проверил, что строка startup.init срабатывает. Я не понимаю, что вы подразумеваете под явной передачей ISolrOperations‹T›. Вы имеете в виду, что я передаю экземпляр в библиотеку?   -  person dhysong    schedule 06.03.2012
comment
да, передайте экземпляр в библиотеку.   -  person Mauricio Scheffer    schedule 06.03.2012
comment
Кроме того, используйте пример приложения для справки. Сравните свое приложение с образцом приложения.   -  person Mauricio Scheffer    schedule 06.03.2012
comment
Ты был прав в первый раз. Код выполнялся веб-службой, на которую ссылался проект, поэтому я запускал его вне контекста. Спасибо - Дрю   -  person dhysong    schedule 06.03.2012


Ответы (1)


Как объясняется в комментариях, оказалось, что он работал в другом контексте, на который не повлиял Application_Start.

person Mauricio Scheffer    schedule 07.03.2012