我已经读过NHibernate 2.1支持构造函数依赖注入的地方。
如何配置StructureMap和NHibnerate 2.1以启动并运行?
答案 0 :(得分:2)
我意识到这是一个老问题,但万一它可能有用。
编辑:原始发布的链接对NHib 2.1无效,找到了更好的信息。
对于NHibernate 2.1,您可以创建一个Interceptor并覆盖Instantiate方法,让容器在那里创建实例。 Here is an example
如果您想要进行属性注入,则可以使用相同的技术,而是在onLoad方法中完成工作。
答案 1 :(得分:0)
通过在所有实体(类等)中设置StructureMap,然后使用每个实例的接口作为类的构造函数的签名...当您在其构造函数StructureMap中实例化具有依赖项的类时会为你自动注射它!
[PluginFamily("Default")]
public interface IWidget1
[Pluggable("Default")]
public class Widget1 : IWidget1
[PluginFamily("Default")]
public interface IAnotherWidget
[Pluggable("Default")]
public class AnotherWidget : IAnotherWidget
{
public AnotherWidget(IWidget widget)
{
...
}
}
IAnotherWidget _anotherWidget = ObjectFactory.GetInstance<IAnotherWidget>();
类似的东西!
这也许有用:Can I replace the call to Activator.CreateInstance() in NHibernate?