Conservo le sessioni in SessionManager
. Il gestore della sessione ha una dipendenza da ISessionPersister
.
SessionManager
private readonly ISessionPersister sessionPersister;
public SessionManager(ISessionPersister sessionPersister)
{
this.sessionPersister = sessionPersister;
}
ISessionPersister
public interface ISessionPersister : IDisposable
{
void PersistSessions(Dictionary<string, ISession> sessions);
}
D: Se la mia applicazione chiude come / dove chiamo PersistSessions
? Chi è il responsabile?
Primo approccio: usa Dispose in SessionManager
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
if (this.sessionPersister != null && this.sessionMap != null && this.sessionMap.Count > 0)
{
this.sessionPersister.PersistSessions(this.sessionMap);
}
}
}
È la strada da percorrere o ci sono soluzioni migliori?