Dans une méthode d'essai (pour une cartographie Fluent NHibernate, bien que ce n'est pas vraiment pertinent) Je le code suivant enveloppé dans un tas de usings et essayer/blocs catch:Aide refactoring à une action <T> délégué
new PersistenceSpecification<Entry>(session)
.CheckProperty(e => e.Id, "1")
.VerifyTheMappings();
Je voudrais refactoriser ceci pour que je puisse passer à une méthode d'aide (où je place les blocs using
et try/catch
).
Mes exigences pour que cela fonctionne comme je veux qu'il sont
session
doit être fournie par l'une des déclarations en utilisantEntry
doit être fourni en paramètre générique, donc je peux mappages de test de divers objets- Il devrait être possible de remplacer
.CheckProperty(e => e.Id, "1").VerifyTheMappings()
par tout ce qui est appelé sur unPersistenceSpecification<T>
lors de la définition de l'argument (dans la méthode de test).
En fait, je voudrais faire quelque chose comme ceci:
var testAction = new PersistenceSpecification<Entry>(session)
.CheckProperty(e => e.Id, "1")
.VerifyTheMappings();
HelpTestMethod(testAction)
mais avec les exigences ci-dessus SATISIFIED.
Merci! J'ai dû modifier légèrement le code - par exemple, je ne pouvais pas assigner un lambda à une variable de type anonyme - mais maintenant ça fonctionne comme un charme! Je vais éditer votre post en quelques minutes pour refléter les changements que j'ai dû faire, donc le prochain gars qui trouve cela peut en profiter encore plus =) –