2010-10-31 8 views
2

J'essaie de combiner avec MVC2 Ninject et NHibernate, et a trouvé un guide ici: http://damianm.com/tech/nhibernate-mvc-and-ninject/utilisation Mvc 2 avec ninject 2 et NHibernate - Get SessionFactory

Le problème est qu'il utilise Ninject 1. Donc, j'ai pour le convertir, et je suis presque succesfull, mais j'ai toujours eu un problème:

Je ne suis pas sûr de savoir comment convertir le « context.Kernel.Get » ici:

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

Si vous avez des moyens de parieurs pour intégrer ces trois bibliothèques, s'il vous plaît dites-moi.

Répondre

2

Je fais essentiellement la même chose dans mon projet, mais je n'utilise pas de fournisseur pour ISession. voici ma reliure:

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

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

Mais je reçois encore: « Ninject.IKernel » ne contient pas de définition pour « Get » et aucune méthode d'extension « Get » accepter un premier argument de type « Ninject.IKernel » se trouve . Quelle version utilisez-vous? – Maola

+11

ah. les méthodes 'Get' sont des méthodes d'extension. ajouter un 'using Ninject;' –

+0

J'aurais dû voir cette erreur :) – Maola