2010-10-31 6 views
2

Я пытаюсь объединить MVC2 с Ninject и NHibernate, и нашел руководство здесь: http://damianm.com/tech/nhibernate-mvc-and-ninject/Использование Mvc 2 с Ninject 2 и NHibernate - Получить SessionFactory

Проблема заключается в том, что он использует Ninject 1. Так я есть преобразовать его, и я почти успешным, но я все еще есть одна проблема:

Я не знаю, как преобразовать «context.Kernel.Get» здесь:

protected override ISession CreateInstance(IContext context) 
{ 
    var sessionFactory = context.Kernel.Get<ISessionFactory>(); 
    return sessionFactory.OpenSession(); 
} 

Если у вас есть Беттерс пути для интеграции этих трех библиотек, пожалуйста, скажите мне.

ответ

2

Я делаю по существу то же самое в своем проекте, однако я не пользуюсь провайдером ISession. вот мой привязки:

 Bind<ISessionFactory>() 
      .ToProvider<SessionFactoryBuilder>() 
      .InSingletonScope(); 

     Bind<ISession>() 
      .ToMethod(context => context.Kernel.Get<ISessionFactory>().OpenSession()) 
      .InRequestScope(); 
+0

Но я все еще получаю: «Ninject.IKernel» не содержит определение для «Получить» и не метод расширения «Get» принимающий первый аргумент типа «Ninject.IKernel» можно найти , Какую версию вы используете? – Maola

+11

ах. методы «Get» - это методы расширения. добавьте 'using Ninject;' –

+0

Я должен был увидеть эту ошибку :) – Maola

Смежные вопросы