我在某处读到 NHibernate 2.1 支持它的实体的构造函数依赖注入。
如何配置 StructureMap 和 NHibnerate 2.1 以使其启动并运行?
我在某处读到 NHibernate 2.1 支持它的实体的构造函数依赖注入。
如何配置 StructureMap 和 NHibnerate 2.1 以使其启动并运行?
我意识到这是一个老问题,但万一它可能有用。
编辑:原始发布的链接对 NHib 2.1 无效,找到了更好的信息。
对于 NHibernate 2.1,您可以创建一个 Interceptor 并覆盖 Instantiate 方法,并让您的容器在那里创建您的实例。 这是一个例子
如果您想改为执行属性注入,则可以使用相同的技术,但改为在 onLoad 方法中执行您的工作。
通过在所有实体(类等)上设置 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>();
类似的东西!
这也可能有用:我可以在 NHibernate 中替换对 Activator.CreateInstance() 的调用吗?