|
1
|
| Jeff Mc · 技术社区 · 17 年前 |
|
|
1
4
使用构造函数注入不能轻松完成这项工作。nHibernate内部可能需要创建一个从域类继承的代理对象,其中包含延迟加载代码等,因此,据我所知,没有简单的选项可以覆盖对象的构造。 你 可以 但是,通过编写一个拦截器,通过属性设置器注入为您构建对象,可以很容易地使依赖项注入与nhibernate一起工作。有一个这样的例子 here .该示例使用windsor作为DI容器,但是您当然可以对structuremap执行相同的操作。- here are the relevant docs for StructureMap -请参阅“将setter注入应用于现有对象(构建)”部分。 警告:将依赖项注入到域模型中通常被视为设计问题的症状,许多人都避免这样做,所以在开始编码之前,请确保这确实是您想要做的事情! |
|
|
2
2
看一看 this post from Fabio Maulo (现在的NHibernate领导开发),几个月前他解决了这个问题。代码是针对NHibernate 2.1的,但我认为它可以通过移除iProxyFactoryFactory的部件而被重新移植到2.0.1ga。 |
|
|
3
1
您可以通过实现iInterceptor和使用ObjectFactory.Buildup在OnLoad方法中执行注入来执行settingJetion。这很容易实现,setter注入可能不是您想要的。 您可以通过实现自己的IBytecodeProvider和ReflectionOptimizer来执行构造函数注入。这有点难,但这是可能的! 我不建议在实体中注入东西。在99.9%的情况下,这将导致糟糕的设计,并使您的设计不可能分层。也许你面对的是0.01%的情况下,这是正确的做法。这是你经常做的事情,就像输入goto语句一样。 |
|
|
Nico Pizzo · 子查询上的nhibernate联接 8 年前 |
|
|
YMC · 无法在Nhb 4中构建只有特定字段可供选择的2个表联接 8 年前 |
|
|
Stu · 具有特定类型的字符串外键的NHibernate映射 8 年前 |
|
|
Zout · 为Hibernate的HiLo算法管理的列生成ID 8 年前 |