2010-10-12 10 views
0

J'ai du mal avec InRequestScope() de Ninject V2 pour gérer un UnitOfWork.Ninject V2 InRequestScope: constructeur de déclenchement sur chaque requête

_kernel.Bind<UnitOfWork>().To<SqlUnitOfWork>().InRequestScope(); 

Je me attends chaque fois que je demande au UnitOfWork via le conteneur que le même objet est toujours retourné dans toute la demande. Cependant, dans le débogueur, j'ai un point d'arrêt sur le constructeur de l'objet et chaque fois qu'une requête est faite au conteneur, le constructeur se déclenche comme si un nouvel objet était créé.

var uow = CreateKernel().Get<UnitOfWork>(); 

Est-ce que quelqu'un a vécu des expériences similaires ou est-ce qu'il me manque quelque chose de critique?

+0

Êtes-vous sûr que l'objet n'est pas détruit par d'autres moyens? – Larsenal

+1

En outre, à quoi ressemble votre méthode 'CreateKernel'? – Larsenal

+0

Merci pour les commentaires @Larsenal, le problème était en fait lié à la façon dont j'accédais à la méthode CreateKernal après l'appel initial. – WDuffy

Répondre

1

Incase quelqu'un d'autre a ce problème mon problème était lié au fichier global.asax. Je stocke manuellement le résultat de CreateKernal dans une variable privée. Changer pour accéder au kernal créé par la requête via la propriété Kernal de la classe de base NinjectHttpApplication a résolu le problème.