J'essaye d'implémenter un modèle d'observateur utilisant ninject et NHibernate. J'aimerais pouvoir injecter des observateurs qui agissent comme des "déclencheurs" lorsqu'un objet est conservé ou supprimé via NHibernate.Ninject/NHibernate Events + Observateur Pattern
points- clés
- Je veux l'observateur à notifier chaque fois qu'un objet est persisté, y compris en cascade permet d'économiser, ce qui explique pourquoi je me sers des événements NHibernate postInsert/PostUpdate.
- Je veux être capable d'injecter les observateurs via Ninject (ne veux pas le noyau n'importe où dans les gestionnaires d'événements nhibernate). Les observateurs sont différents en fonction du type d'objet persistant, j'ai donc besoin d'un bon moyen de savoir quels observateurs devraient être appelés dans les événements NHibernate.
Mon code fonctionne très bien maintenant pour les objets qui sont chargés via NHibernate en utilisant l'injection de constructeur. Une classe d'observateur est injectée dans le modèle de domaine, qui est transporté à travers les événements nhibernate et peut être déclenché sans problème. Le problème: Notre base de code existante utilise des constructeurs par défaut pour nos objets de domaine par rapport à une usine. Pour cette raison, les observateurs ne seront pas injectés à moins que nous passions à l'utilisation d'une usine. Je sais que tout changer à une usine fonctionnera, mais je voulais voir si quelqu'un a de meilleures suggestions pour accomplir cela. Alors, devrais-je créer une usine pour instancier de nouveaux objets ou autre chose?
donc vous ne pouvez pas mettre ctor sur les objets de domaine avec les dépendances énumérées dans les arguments ctor? – AaronHS