Вот сценарий.У меня есть служба WCF, когда эта служба вызывается, она передает управление экземпляру другого класса (созданного с помощью Ninject).В этом классе мне нужно поработать, особенно с Entity Framework и репозиториями.Короче говоря, у меня объявлена следующая привязка.
Bind<IGenericProductRepository>()
.To<GenericProductRepository>()
.WithConstructorArgument( "context", new StagingDataContext());
Когда я хочу использовать этот репозиторий, у меня есть следующее.
using (var genericProductRepository = IoC.Resolve<IGenericProductRepository>())
Проблема в том, что яполучить новый экземпляр genericProductRepository только в том случае, если это совершенно новый запрос, если метод вызывается несколько раз в одном и том же запросе, я получаю сообщение об ошибке, утверждающее, что контекст (контекст EF) уже удален, это потому, что кажется, что явернуть тот же экземпляр, который уже был расположен в операторе using.Чтобы объяснить это по-другому, с помощью тестового клиента Microsoft WCF, если я вызываю его в первый раз, код работает нормально, если я снова нажимаю кнопку вызова (без перезапуска тестового клиента, то есть того же запроса), он выдает эту ошибкуо том, что он уже был уничтожен.
Я пытался поиграться с различными "сферами", которые есть в Ninject, но, очевидно, я что-то упускаю.
Итак, мой основной вопрос: какЯ получаю новый репозиторий всякий раз, когда он попадает в эту строку, вместо того, чтобы использовать тот же?Буду очень признателен за помощь, я действительно стараюсь, чтобы моя компания приняла Ninject и бросила Spring.