J'ai trois méthodes:Comment combiner des appels de méthode similaires dans un modèle de délégué?
public void Save<T>(T entity)
{
using (new Transaction())
{
Session.Save(entity);
}
}
public void Create<T>(T entity)
{
using (new Transaction())
{
Session.Create(entity);
}
}
public void Delete<T>(T entity)
{
using (new Transaction())
{
Session.Delete(entity);
}
}
Comme vous pouvez le voir, la seule chose qui diffère est l'appel de méthode à l'intérieur du bloc using
. Comment puis-je réécrire ce donc c'est quelque chose comme ceci:
public void Save<T>(T entity)
{
TransactionWrapper(Session.Save(entity));
}
public void Create<T>(T entity)
{
TransactionWrapper(Session.Create(entity));
}
public void Save<T>(T entity)
{
TransactionWrapper(Session.Save(entity));
}
En d'autres termes, je passe un appel de méthode en tant que paramètre, et la méthode TransactionWrapper
enveloppe une transaction autour de l'appel de méthode.
Merci, cela fonctionne très bien. Je voulais envelopper les appels de méthode dans une méthode de transaction afin que je puisse facilement activer/désactiver les transactions sur les trois méthodes en un seul endroit. –