我想知道如何告诉NHibernate解决我的POCO域对象的依赖关系.
我发现像CalculateOrderTax这样的方法应该在Domain对象中,因为它们编码特定于域的业务规则.但是,一旦我有两个违反SRP的话.
将这些方法提取到Strategy类是没有问题的,但我想知道如何使NHibernate加载它们.
在将对象移交给更高层之前,循环访问存储库中的对象列表以进行基于Dependecy注入的获取/设置似乎不是一个好的解决方案.
我现在也在使用Castle Windsor进行Depency注射.
我一直在使用拦截器来完成类似的任务:
一个修改加载实体的拦截器:
public class MyInterceptor : EmptyInterceptor { public override bool OnLoad(object entity, object id, object[] state, string[] propertyNames, IType[] types) { return InjectDependencies(entity as MyEntity); } }
将其与会话相关联:
nhSessionFactory.OpenSession(myInterceptor);
我还在某处读到了在即将发布的2.1版本中对自定义构造函数注入的更好支持,但我现在似乎无法找到引用.