使用NHibernate 2.1和StructureMap的构造函数依赖项注入
我在某个地方读到NHibernate2.1支持其实体的构造函数依赖注入使用NHibernate 2.1和StructureMap的构造函数依赖项注入,nhibernate,structuremap,Nhibernate,Structuremap,我在某个地方读到NHibernate2.1支持其实体的构造函数依赖注入 如何配置StructureMap和NHiGenerate 2.1以使其启动并运行?通过在所有实体(类等)中设置StructureMap然后使用每个类的接口作为类构造函数的签名…当您实例化在其构造函数StructureMap中具有依赖项的类时,它将自动为您注入它 [PluginFamily("Default")] public interface IWidget1 [Pluggable("Default")] public
如何配置StructureMap和NHiGenerate 2.1以使其启动并运行?通过在所有实体(类等)中设置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>();
[PluginFamily(“默认”)]
公共接口IWidget1
[可插拔(“默认”)]
公共类Widget1:IWidget1
[PluginFamily(“默认”)]
公共接口小部件
[可插拔(“默认”)]
公共类AnotherWidget:IAnotherWidget
{
公共另一个小部件(IWidget小部件)
{
...
}
}
IAnotherWidget\u anotherWidget=ObjectFactory.GetInstance();
差不多吧
这也可能有用:
这是:我意识到这是一个老问题,但万一有用的话 编辑:原来发布的链接对NHib 2.1无效,找到了更好的信息 对于NHibernate2.1,您可以创建一个拦截器并重写实例化方法,并让容器在那里创建实例
如果您想改为执行属性注入,您可以使用相同的技术,但可以改为使用onLoad方法来执行工作。这有什么用吗?我还希望通过sm将依赖项注入到我的实体中。不,我认为我通过重新思考问题并避免依赖项注入来解决这个问题:)