Je travaille sur une application asp.net-mvc. Le contexte de données linq est passé dans mes objets de service par la structure de mappe. Je dois avoir une portée d'hybride. Tout cela fonctionne très bien.StructureMap InstanceScope.Hybrid et IDisposable
protected override void configure()
{
ForRequestedType<AetherDataContext>()
.TheDefaultIs(() => new AetherDataContext())
.CacheBy(InstanceScope.Hybrid);
}
Le problème est que je continue à courir notre mémoire, je me demande si l'interface IDisposable est jamais réellement appelé.
Vous avez des idées?
A défaut que quelqu'un ait eu une autre idée de choses qui pourraient causer des exceptions à ma mémoire?
Mise à jour:
donc quelques informations supplémentaires, je viens farcie deux méthodes dans mon contexte de données un des points de freinage mis là-dedans.
protected override void Dispose(bool disposing)
{
Debug.WriteLine("Disposing: " + DateTime.Now);
base.Dispose(disposing);
}
public new void Dispose()
{
Debug.WriteLine("Disposing: " + DateTime.Now);
base.Dispose();
}
Je ne suis pas tout à fait sûr que je fais cela la bonne façon, je devine que la nouvelle méthode sera appelée?
De toute façon, aucun des points de freinage n'a été touché. Cependant, le constructeur de la même classe a été appelé à chaque demande. Pas idéal je pense.
Je me suis toujours demandé ce qui arrivait à IDisposables et aux différentes politiques de mise en cache. A défaut de trouver quoi que ce soit dans les documents, collez des points d'arrêt dans votre Dispose() et voyez quand cela arrive (voire pas du tout). Je serais intéressé par les réponses à cette question –
quelle solution avez-vous fini par aller avec? J'ai une préoccupation similaire actuelle: http: // stackoverflow.com/questions/3665336/iqueryable-repository-avec-structemap-ioc-how-do-i-implement-idisposable – RPM1984