J'ai le code suivant dans un module Autofac qui est utilisé dans ma méthode de Application_Start:Comment puis-je m'assurer qu'il y a une ISession de NHibernate par requête utilisant Autofac?
builder.Register(c => new Configuration().Configure().BuildSessionFactory())
.SingletonScoped();
builder.Register(c => c.Resolve<ISessionFactory>().OpenSession())
.HttpRequestScoped();
builder.Register<NHibernateSomethingRepository>().As<ISomethingRepository>();
Le constructeur pour le dépôt prend un ISession comme argument. Mais je me retrouve avec une session pour l'ensemble de l'application, même si j'ai explicitement demandé qu'il soit HttpRequestScoped.
J'ai configuré le module HTTP ContainerDisposal.
Selon le documentation, vous devez créer un conteneur imbriqué, mais je laisse Autofac autowire les dépendances.
Que dois-je faire?
Merci!
NOTE: Dans Autofac2, la valeur par défaut a changé: elle est maintenant: 'factoryScoped' AKA 'InstancePerDependancy' dans le nouveau langage. – UpTheCreek