J'ai la classe suivante:
public class SqlCeEventStore: EventStore
{
private EventStoreDB db;
public SqlCeEventStore(EventStoreDB db)
{
this.db = db;
}
public void Dispose()
{
db.Dispose();
}
}
Mon problème est le suivant : est-ce que je fais bien de disposer de l'EventStoreDB
dans la méthode Dispose
de ma classe, étant donné qu'il a été passé dans le constructeur (et donc, pourrait éventuellement être réutilisé après que ma classe ait été disposée) ?
C'est-à-dire, si je le dispose, je dicte que l'utilisation correcte de ma classe est :
using (var store = new SqlCeEventStore(new EventStoreDB)){
{
//...
}
mais je peux voir cet appel alternatif être utilisé :
using (var db = new EventStoreDB())
using (var store = new SqlCeEventStore(db))
{
//...
}
dans ce cas, je ne devrais pas disposer de l'EventStoreDB
depuis la classe SqlCeEventStore
.
Y a-t-il des arguments pour l'un ou l'autre style ? Je veux en choisir un et m'y tenir, et je préférerais ne pas lancer une pièce :)