Est-il possible d'effectuer un traitement personnalisé lorsque Windsor instancie un type?Castle Windsor: traitement personnalisé lors du démarrage du service
Quelque chose de similaire à:
container.Register(
AllTypes.Pick()
.FromAssembly(Assembly.GetExecutingAssembly())
.BasedOn<MyMarkerInterface>()
.WhenInstantiating(instance => // do some stuff with this instance)
.Configure(component => component.Startable().LifeStyle.Singleton)
.WithService.Base());
Actuellement nous utilisons IStartable. Puisque le code "Start" (c'est-à-dire le traitement personnalisé) est identique, il serait bien de déplacer cette logique hors de chaque classe.
Merci! Brian
+1, mais la solution agnostique de conteneur est un décorateur :) –
Je ne suis pas sûr du décorateur. Où mettriez-vous la logique? En .ctor? Que faire si vous voulez l'exécuter une fois que votre composant est entièrement instancié, c'est-à-dire avec des propriétés câblées également? Appelez-le paresseusement lors du premier appel à une méthode? Pas sûr que ce soit une si bonne idée. –
Merci Krysztof. Pour les autres lecteurs, la méthode OnCreate a été ajoutée dans la version 2.1.0. –