使用NHibernate对象进行依赖注入

Tig*_*ine 8 nhibernate dependency-injection

我想知道如何告诉NHibernate解决我的POCO域对象的依赖关系.

我发现像CalculateOrderTax这样的方法应该在Domain对象中,因为它们编码特定于域的业务规则.但是,一旦我有两个违反SRP的话.

将这些方法提取到Strategy类是没有问题的,但我想知道如何使NHibernate加载它们.

在将对象移交给更高层之前,循环访问存储库中的对象列表以进行基于Dependecy注入的获取/设置似乎不是一个好的解决方案.

我现在也在使用Castle Windsor进行Depency注射.

Cri*_*rdo 8

我一直在使用拦截器来完成类似的任务:

一个修改加载实体的拦截器:

public class MyInterceptor : EmptyInterceptor
{
    public override bool OnLoad(object entity, object id, object[] state, string[] propertyNames, IType[] types)
    {
        return InjectDependencies(entity as MyEntity);
    }
}
Run Code Online (Sandbox Code Playgroud)

将其与会话相关联:

nhSessionFactory.OpenSession(myInterceptor);
Run Code Online (Sandbox Code Playgroud)

我还在某处读到了在即将发布的2.1版本中对自定义构造函数注入的更好支持,但我现在似乎无法找到引用.