Estoy trabajando en una aplicación asp.net-mvc. El contexto de datos linq se pasa a mis objetos de servicio por el mapa de estructura. Tengo configurado para tener un alcance de híbrido. Todo esto funciona bien.StructureMap InstanceScope.Hybrid y IDisposable
protected override void configure()
{
ForRequestedType<AetherDataContext>()
.TheDefaultIs(() => new AetherDataContext())
.CacheBy(InstanceScope.Hybrid);
}
El problema es que sigo corriendo nuestra memoria, me pregunto si la interfaz IDisposable es siempre realmente se llama.
¿Alguien tiene alguna idea?
¿Falló que alguien tuviera alguna otra idea para las cosas que podrían estar causando las excepciones de mi memoria?
Actualización:
Así que alguna información adicional, sólo metió un par de métodos en mi contexto de datos un freno puntos de venta en ese país.
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();
}
No estoy muy seguro de estar haciendo esto de la manera correcta, supongo que se llamará al nuevo método?
De todos modos, ninguno de los puntos de freno se golpeó. Sin embargo, el constructor de la misma clase fue llamado en cada solicitud. No es ideal, estoy pensando.
Siempre me he preguntado qué pasa con IDisposables y las diversas políticas de almacenamiento en caché. Si no encuentra nada en los documentos, adhiera puntos de interrupción en su Dispose() y vea cuándo sucede (si es que lo hace). Me interesarían las respuestas a este –
¿con qué solución terminaste? Tengo una preocupación similar actual: http: // stackoverflow.com/questions/3665336/iqueryable-repository-with-structuremap-ioc-how-do-i-implement-idisposable – RPM1984