【发布时间】:2010-06-01 20:56:20
【问题描述】:
我正在尝试使用 ninject 和 NHibernate 实现观察者模式。
我希望能够在通过 NHibernate 持久化或删除对象时注入充当“触发器”的观察者。
关键点-
- 我希望在对象被持久化(包括级联保存)时随时通知观察者,这就是我使用 NHibernate PostInsert/PostUpdate 事件的原因。
- 我希望能够通过 Ninject 注入观察者(不希望内核在 nhibernate 事件处理程序中的任何位置)。
- 观察者因持久化对象的类型而异,因此我需要一种很好的方法来了解应该在 NHibernate 事件中调用哪些观察者。
我的代码现在非常适合使用构造函数注入通过 NHibernate 加载的对象。一个观察者类被注入到领域模型中,它通过nhibernate事件进行,可以毫无问题地触发。
问题:我们现有的代码库对我们的域对象使用默认构造函数而不是工厂。因此,除非我们切换到使用工厂,否则不会注入观察者。
我知道将所有东西都切换到工厂是可行的,但我想看看是否有人有更好的建议来实现这一点。那么,我应该创建一个工厂来实例化新对象还是其他东西?
【问题讨论】:
-
所以您不能将 ctor 放在具有 ctor 参数中列出的依赖项的域对象上?
标签: nhibernate ninject observer-pattern