J'essaie d'utiliser la fonction InstanceScope.HttpSession de StructureMap et je rencontre des problèmes. J'ai la méthode suivante j'utilise pour les tests:Comment utiliser InstanceScope.HttpSession dans StructureMap?
public static class StructureMapTest {
public static T Get<T>() {
ObjectFactory.Configure(x => x.AddRegistry(new RepositoryRegistry()));
return ObjectFactory.GetInstance<T>();
}
}
Ma classe RepositoryRegistry ressemble à ceci:
public class RepositoryRegistry : Registry {
public RepositoryRegistry() {
ForRequestedType<IClientRepository>()
.CacheBy(InstanceScope.HttpSession)
.TheDefault.Is.OfConcreteType<ClientRepository>();
}
}
Donc, dans mon code client (contrôleur ASP.NET MVC) je fais quelque chose comme suivant:
public ActionResult InjectionTest() {
return Content(DataProvider.Clients.CreatedDate.ToString());
}
Et chaque fois que j'appelle ce contrôleur même à partir de la même session, j'obtiens une nouvelle instance à chaque fois. Qu'est-ce que je fais mal ici?
Avez-vous essayé ma réponse? Je n'ai pas ce problème, et la principale différence est que ma configuration est sur le global.asax – eglasius